most 코드

CL-USER> (defun most (fn lst)
           (if (null lst)
               (values nil nil)
               (let* ((wins (car lst))
                      (max (funcall fn wins)))
                 (dolist (obj (cdr lst))
                   (let ((score (funcall fn obj)))
                     (when (> score max)
                       (setf wins obj
                             max score))))
                 (values wins max))))
MOST
CL-USER> (most #'length '((a b) (a b c) (a)))
(A B C)
3

언제나 직관적이고 아름다운 lisp 코드.
귀찮게 위 아래로 몇 번 훑을 필요도 없이
그냥 한 번 쭈욱 읽어내리기만 하면 된다.

따닥닥닥 괄호 치면서 묘한 타격감과 리듬감이 느껴진다.
(무엇보다 아범 키보드잖아♡)

트랙백

이 글과 관련된 글 쓰기 (트랙백 보내기)
TrackbackURL : http://www.xeraph.com/tb/1228177 [도움말]

덧글

댓글 입력 영역