Next: 4.2 リードマクロ
Up: 4 関数閉包(closure)
Previous: 4 関数閉包(closure)
CommonLispではクロージャが定義された時の局所変数のみ(変数以外では,局
所関数,タグ,局所マクロ,ブロックなども保存される)を保存するために,
レキシカルクロージャ(lexical closure)と呼ばれる.
レキシカルというのは,字面上でということで,実行時で決まるというのでは
なく,プログラムのソース上でそれが定義されているところでという意味であ
る.
通常のデータはquoteというスペシャルフォームでデータとして与えられるが,
関数は,functionというスペシャルフォームによりデータとして与えることが
できる.functionに与えられた関数シンボルやラムダ式は,レキシカルクロー
ジャを返すことになる.クロージャは,そのクロージャが生成される際の変数
のバインディング情報が閉じ込められた関数定義である.レキシカルク
ロージャとは,スコープがレキシカルのルールにのっとっているクロージャで
ある.クロージャはいわば環境を伴った関数データといえる.
generated through LaTeX2HTML. M.Inaba 平成18年5月7日