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

11 ループと再帰

Emacs Lispには、式または一連の式を繰り返し評価させるための主要な方法が2つあります。一つはwhileループを用いる方法で、もう一つは再帰を用いる方法です。

反復は非常に有用な場合があります。例えば、4文分先に進むには、1文分進み、その処理を4回繰り返すというプログラムを書くだけで済みます。コンピュータは飽きたり疲れたりすることがないため、こうした反復的な動作は、過度あるいは不適切な種類の反復が人間に及ぼし得るような悪影響をもたらすことはありません。

Emacs Lispの関数は、主にwhileループやその類を用いて記述されますが、再帰を使うこともできます。再帰は、問題を考え、そして解決するための非常に強力な手法となります14。


脚注

(14)

メンタルリソースやコンピュータリソースを節約する、あるいは浪費するような再帰関数を書くことができます。実際、人々が使いやすいと感じる手法――つまりメンタルリソースを節約できる手法――が、時にはかなりのコンピュータリソースを消費することがあります。Emacsは、現在では性能が限られているとされるマシンで動作するように設計されており、デフォルト設定は控えめです。max-lisp-eval-depthの値を上げたい場合もあるでしょう。私の.emacsファイルでは、これをデフォルト値の30倍に設定しています。