Go to the first, previous, next, last section, table of contents.

関数の記述例

関数、マクロ、特殊フォームの記述ににおいて、パラメタのリストに &optional と いうキーワードを示す場合、それはそのパラメタに続くアーギュメントが省略可能であ ることを示します (特に値が指定されてない場合、パラメタの値はデフォルトで nil になります)。

キーワード &rest (常にパラメタを 1つ後ろに持ちます) は、(必要なパラメタとオプ ショナルなパラメタの後に) 複数のアーギュメントを続けることができることを示しま す。 (追加された)アーギュメントはリストにされ、最後のパラメタにバインドされま す。

タイプ名を持つパラメタ(e.g., integer, integer1, buffer) は、そのタイプのもので あるとされます。その他の名前を持つパラメタ(e.g., name) に関しては、本文中に記 述します。 object という名前のパラメタは、どのタイプでもありえます。いくつかの セクションでは、個々の関数の記述の前に、そのセクションにおける関数が共通して用 いるパラメタについて説明しています。

以下の記述は、仮想的な関数 foo に関するものです。コマンド、マクロ、特殊フォー ムの記述も同じ形になりますが、ページの右端の `[Function]' はそれぞれ `[Command]', `[Macro]', `[Special Form]' で置き換えられます。また、マクロや特 殊フォームでは optional-arg がオプショナルであることを示すのに `[optional- arg]' を用い、 repeated-arg を 0 回以上繰返しうるということを示すのに `repeated-arg*' を用いることがあります。

Function: foo integer1 &optional integer2 &rest integers

関数 foo は、 integer2 から integer1 を引き、他の全てのアーギュメントをそ の結果に足し込みます。 integer2 が与えられない場合、数字 19 を用います。

  (foo 1 5 3 9)
  => 16
  (foo 5)
  => 14

より一般的には、

  (foo w x y z)
  ==
  (+ (- x w) y z)

(訳注:正しい??)


Go to the first, previous, next, last section, table of contents.