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

11 制御構造

Lispプログラムは、一連の式、あるいはフォーム(フォームの種類を参照)で構成されます。これらのフォームを制御構造で囲むことで、実行順序を制御します。制御構造とは、含まれるフォームをいつ、実行するか否か、あるいは何回実行するかを制御する特殊なフォームのことです。

最も単純な実行順序は逐次実行です。まず a をフォーム化し、次に b をフォーム化し、というように続けます。これは、関数の本体内、あるいはLispコードファイルのトップレベルで複数のフォームを連続して記述した場合に起こることで、フォームは記述された順に実行されます。これをテキスト順と呼びます。例えば、関数本体が2つのフォーム a と b で構成されている場合、関数の評価では、まず a が評価され、次に b が評価されます。b の評価結果が関数の値となります。

明示的な制御構造により、逐次実行以外の実行順序が可能となる。

Emacs Lispでは、その他のシーケンス、条件分岐、反復、および(制御付き)ジャンプなど、数種類の制御構造が提供されており、これらについては以下で解説します。組み込みの制御構造は、そのサブフォームが必ずしも逐次的に評価されるとは限らないため、特殊形式となっています。また、マクロを使用して独自の制御構造を構築することも可能です(マクロを参照)。