Я пытаюсь создать композицию в тире, которая выполняет следующее - разбивает на строки - удаляет пустые строки - сохраняет строки, начинающиеся с "N" - возвращает расширение имени файла
Однако код ниже чувствуетнеуклюжий - интересно, если кто-нибудь может помочь упростить / переписать это.
(let ((line-sep "\\\n")
(new-ind "^N ")
(sample-output "
N /dir1/file1.el
N /dir1/file2.dot
/dir1/file3.py
/dir1/file4.sql"))
(funcall
(-compose
(-partial '-map (lambda(x) (file-name-extension (nth 1 (split-string x)))))
(-partial '-filter (-partial 'string-match-p new-ind)) ; keep lines starting w/"N"
(-partial '-filter (lambda(x) (> (length x) 0))) ; remove empty lines
(-partial (-flip 'split-string) line-sep)) ; split into lines
sample-output))