Next: , Previous: , Up: Programming Types   [Contents][Index]


2.3.15 Primitive Function Type

基本関数(primitive function)とは、Cプログラミング言語で記述された、Lispから呼び出せる関数です。基本関数はsubrsビルと陰関数(built-in functions)とも呼ばれます(単語“subr”は、“サブルーチン(subroutine)”が由来です)。ほとんどの基本関数、呼び出されたとき、すべての引数を評価します。すべての引数を評価しない基本関数は、スペシャルフォーム(special form)と呼ばれます(Special Formsを参照してください)。

呼び出す側からすれば、その関数が基本関数かどうかは、問題になりません。しかし、基本関数をLispで記述された関数で再定義した場合は、問題になります。理由は、その基本関数がCコードから直接呼び出されているかもしれないからです。Lispから再定義した関数を呼び出すと、これは新しい定義を使用するでしょうが、Cコードから呼び出すと、ビルトインの定義が使用されるでしょう。したがって、基本関数の再定義はしないでください

関数(function)という用語により、LispやCで記述された、すべてのEmacs関数を参照します。Lispで記述された関数についての情報は、Function Typeを参照してください。

基本関数に入力構文はなく、サブルーチン名とともにハッシュ表記でプリントします。

(symbol-function 'car)          ; そのシンボルの関数セルに
                                ;     アクセスします。
     ⇒ #<subr car>
(subrp (symbol-function 'car))  ; これは基本関数か?
     ⇒ t                ;    イェース。