(defun fold1 (proc seed ls) (loop for e in ls for acc = seed then (funcall proc e acc) finally (return acc)))
そういえば、先日知ったんですが、M-x ielm で Emacs Lisp の REPL が立ち上がるみたいですね。
ELISP> (fold1 #'* 1 '(1 2 3 4 5)) 120 ELISP> (fold1 #'cons '() '(1 2 3 4 5)) (5 4 3 2)
あと unfold と pair-fold 辺りを用意しとけばある程度困らないかも・・・?
0 件のコメント:
コメントを投稿