ラムダ式とは、次のような形式のリストのことです。
(lambda (arg-variables...) [documentation-string] [interactive-declaration] body-forms...)
ラムダ式の最初の要素は、常に記号 lambda
です。これは、そのリストが関数を表していることを示しています。関数が lambda
から始まるように定義されているのは、他の用途を想定したリストが、誤って関数として有効にならないようにするためです。
2つ目の要素はシンボルのリスト――引数変数名(引数リストの特徴を参照)です。これはラムダリストと呼ばれます。Lisp関数が呼び出されると、引数の値がラムダリスト内の変数と照合され、提供された値でローカル束縛が割り当てられます。ローカル変数を参照してください。
ドキュメント文字列とは、Emacsのヘルプ機能向けに関数を説明するため、関数定義内に配置されるLispの文字列オブジェクトのことです。関数のドキュメント文字列を参照してください。
インタラクティブ宣言は、形式 (interactive code-string)
のリストです。これにより、関数をインタラクティブに使用する場合の引数の渡し方が指定されます。この宣言を持つ関数はコマンドと呼ばれ、M-x
を用いて呼び出したり、キーにバインドしたりすることができます。このような方法で呼び出すことを想定していない関数には、インタラクティブ宣言を設けるべきではありません。インタラクティブ宣言の書き方については、コマンドの定義を参照してください。
残りの要素は関数の本体、すなわち関数の処理を行うためのLispコード(あるいはLispプログラマの言い方をすれば、「評価すべきLispフォームのリスト」)です。関数が返す値は、本体の最後の要素が返す値となります。