LINUX.ORG.RU

История изменений

Исправление iVS, (текущая версия) :

банальный map filter map, а столько писанины

Разве настольно неопциональный код что-либо доказывает? Две лямбды, три функции, переводящие список в другой список - ужас. Только одна лямбда, и только один map:

(defun list-buffers-string ()
  (mapconcat (lambda (buf)
               (let ((name (buffer-name buf)))
                 (unless (string= (substring name 0 1) " ")
                   (format "%s\n" name))))
             (buffer-list) ""))

Исходная версия iVS, :

банальный map filter map, а столько писанины

Разве настольно неопциональный код что-либо доказывает? Две лямбды, три функции, переводящие список в другой список - ужас. Только одна лямбда, и только один map:

(defun list-buffers-string ()
  (mapconcat (lambda (buf)
               (let ((name (buffer-name buf)))
                 (unless (string= (substring name 0 1) " ")
                   (format "%s\n" name))))
             (buffer-list) ""))