次: , 前: Definition Commands, 上: Definition Commands


15.1 定義のテンプレート

@deffnコマンドは,関数に似ている構成要素の定義に使用されます. @deffnコマンドで定義を書くために,@deffnコマンドを行の最 初に書き,同じ行に構成要素のカテゴリ,構成要素自身の名前と,(存在する場 合は)引数を続けてください.そして,続く行に定義の本体を書いてください. (本体に例を埋め込むこともできます.)終りに,単独行に書かれた@end deffnコマンドで定義を終えてください.(他の定義コマンドも同じ書式が続き ます.)

定義のテンプレートは以下のようになります.

     @deffn category name arguments...
     body-of-definition
     @end deffn

例えば,以下のようにします.

     @deffn Command forward-word count
     
     
     このコマンドは,ポイントを@var{count}語前に(または,@var{count}が
     負の場合は後ろに)移動します....@end deffn

以下を生成します.

— Command: forward-word count

このコマンドは,ポイントをcount語前に(または,countが負の場 合は後ろに)移動します....

タイトルのようなカテゴリ名は大文字にしてください.`Interactive Command' といった文節のようにカテゴリ名に空白が含まれている場合,周りにカッコを書 いてください.例えば以下のようにします.

     @deffn {Interactive Command} isearch-forward
     ...
     @end deffn

そうしない場合,二番目の単語は構成要素の名前と誤解されます.

定義コマンドには,それ以外に一般的なものもあります.例えば, @deffnコマンドは関数やそれに似たもの — 引数を取る構成要素 — に対する一般的な定義コマンドです.このコマンドを使用するときは,構成要素 が属するカテゴリを指定すべきです.@deffnコマンドには,三つの既に 定義されている専門的な変種の,@defun@defmac,そして @defspecを処理し,それらはカテゴリを指定します.それぞれ“関数”, “マクロ”,そして“スペシャルフォーム”です.(Lispではスペシャルフォー ムは関数に似た構成要素です.) @defvrコマンドも,変数の特定の種類 を記述するため専門分野に相違のあるものとして,前もって定義されたものがあ ります.

@defunのような専門的に定義されているものに対するテンプレートは, カテゴリを指定する必要が無い以外,一般の定義のテンプレートに似ています.

     @defun name arguments...
     body-of-definition
     @end defun

このため以下のようにします.

     @defun buffer-end flag
     
     
     
     この関数は@var{flag}が1より小さい場合@code{(point-min)}を返し,そ
     れ以外では@code{(point-max)}を返します....
     @end defun

以下を生成します.

— 機能: buffer-end flag

この関数はflagが1より小さい場合(point-min)を返し,それ以外 では(point-max)を返します....

定義の内部に@exampleの使用を含んでいる関数定義の詳細な例は, See Sample Function Definition.

それ以外の特別なコマンドは,@defunのように動作します.

実装が困難なため,@deffn内部とそれ以外のすべての定義コマンドの内 部にあるマクロは展開されないことに注意してください.