Emacs 使用cl回路设备减少

Emacs 使用cl回路设备减少,emacs,elisp,Emacs,Elisp,表示“所有这些映射操作都可以用cl loop宏方便地表示”,但我不知道cl REDUCT如何用cl loop表示 (defun loop-reduce (func sequence &rest initial-element) (loop with result = (or (car initial-element) (prog1 (car sequence) (setf sequence (cdr sequence

表示“所有这些映射操作都可以用cl loop宏方便地表示”,但我不知道cl REDUCT如何用cl loop表示

(defun loop-reduce (func sequence &rest initial-element)
  (loop with result =
        (or (car initial-element)
            (prog1 (car sequence)
              (setf sequence (cdr sequence))))
        for x in sequence do (setf result (funcall func result x))
        finally (return result)))

(loop-reduce '+ '(1 2 3 4 5))
;; 15

(loop-reduce '+ '(1 2 3 4 5) 10)
;; 25