逐次実行とLet



prog1 form1 &rest forms [関数]

form1formsは、次々と評価され、 form1から返される値がprog1の値として返される。


progn {form}* [特殊]

formは次々に評価され、最後のformの値が返される。 prognは特殊書式である。なぜなら、ファイルの最初に現れたとき 特別な意味を持つからである。 そのような書式がコンパイルされたとき、内部書式はすべて最初に現れた として見なす。 マクロがdefundefmethodの連続で拡張される場合、それが最初に 現われなければならないときに役立つ。


setf {access-form value}* [マクロ]

valueを一般化変数access-formに割り当てる。


let ({var $ \vert$ (var [value])}*) {declare}* {form}* [特殊]

ローカル変数を生成する。 すべてのvalueは評価され、並行してvarに割り当てられる。すなわち、 (let ((a 1)) (let ((a (1+ a)) (b a)) (list a b))) の結果は (2 1)である。


let* ({var $ \vert$ (var [value])}*) {declare}* {form}* [特殊]

ローカル変数を生成する。 全てのvalueは次々に評価され、varに割り当てられる。すなわち、 (let ((a 1)) (let* ((a (1+ a)) (b a)) (list a b)))の結果は (2 2)である。




2016-04-05