let と let*の違い
● let は変数束縛が同時に起こる感じ
●
(let ((x 10)
(y 20)
●
(z (+ x y))
●
●
... body ... )
●
● z の初期化には x と y が必要だけど、初期化は * 同時 * なので x,y
ともにまだ存在しない!なので未定義変数参照エラー。
● let* は変数束縛が逐次的に起こる感じ
(let* ((x 10)
(y 20)
(z (+ x y))
... body ... )
● こっちは問題ない。この差は多分にコンパイラの都合。