Next: Byte-Code Type, Previous: Macro Type, Up: Programming Types [Contents][Index]
基本関数(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 ; イェース。