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

11.3.4 カウンタの代わりに再帰を用いる

前のセクションで説明した triangle 関数は、再帰的に記述することもできます。次のような形になります。

(defun triangle-recursively (number)
  "Return the sum of the numbers 1 through NUMBER inclusive.
Uses recursion."
  (if (= number 1)                    ; do-again-test
      1                               ; then-part
    (+ number                         ; else-part
       (triangle-recursively          ; recursive call
        (1- number)))))               ; next-step-expression

(triangle-recursively 7)

この関数は、評価してインストールし、その後 (triangle-recursively 7) を評価して試すことができます。(関数定義の最後の括弧の直後、コメントの前にカーソルを置くのを忘れないでください。)この関数を評価すると 28 になります。

この関数の仕組みを理解するために、引数の値として 1、2、3、または 4 を渡した場合に、それぞれのケースで何が起こるかを考えてみましょう。