另一种递归模式称为 accumulate(累积)模式。在该模式中,会对列表的每个元素执行操作,并将该操作的结果与其他元素的操作结果累积起来。
该模式与使用 cons 的 every 模式非常相似,区别在于不使用 cons,而是使用其他组合方式。
模式如下:
+ 或其他组合函数,将处理后的元素与
示例如下:
(defun add-elements (numbers-list)
"Add the elements of NUMBERS-LIST together."
(if (not numbers-list)
0
(+ (car numbers-list) (add-elements (cdr numbers-list)))))
(add-elements '(1 2 3 4))
⇒ 10
See Making a List of Files,可查看累积模式的更多示例。