Функция
mapconcat вызывает функцию переданную в первом аргументе (лямбду в вашем случае) для каждого элемента последовательности переданной вторым аргументом, а возвращённые значения склеивает в одну строку, разделяя третьим аргументом.
(mapconcat
'(lambda (s) (concat "<key>" s ))
lines
"\n")
То есть, если
lines
будет содержать
'("a" "b" "c")
, то сначала в лямбду будет передана строка "a", там склеена со строкой "<key>", потом строка "b", потом "c", а после полученные строки "<key>a", "<key>b" и "<key>c" будут склеены в одну строку "<key>a\n<key>b\n<key>c".