GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/eintr/Accumulate.html ・ emacs-doc.conao3.com

再帰パターン: accumulate

もう一つの再帰パターンは、accumulate パターンと呼ばれます。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

accumulateパターンの例については、ファイル一覧の作成を参照してください。