Next: 2.3.5 マクロ展開
Up: 2.3 eval
Previous: 2.3.3 関数定義を取り出す
SUBRというのは組み込み関数で,関数の引数の数が固定の関数です.
FSUBRというのは組み込み関数で,関数の引数の数が固定ではない関数で,
ifやletなどのスペシャルフォームはFSUBRとして定義されています.
getsubrにより
#define getsubr(x) ((x)->n_subr)
CONSの場合というのは,
> ((lambda (x y) (+ x y)) 1 2)
3
というように,先頭がlambdaで始まるリストである場合の処理に対応します.
このように名前のない関数を関数名のところにおくだけでその演算がなされま
す.もともとは,このように関数に名前を付けない形(lambda形式)で数学的
な取り扱いをするものがラムダ計算(lambda calculus)と呼ばれるものです.
Lispはもともとは数学的な基盤をラムダ計算において発明された関数型の言語
でした.しかし,現在はCommonLispのように実用的な言語として各種の機能が
追加されてきている言語になっています.
generated through LaTeX2HTML. M.Inaba 平成18年5月6日