let と let* の違い
> (define x 5)
> (let ((x 1)
        (y (+ x 1)))    ; この x は外の x を指してしまう
    y)
6
> (let* ((x 1)
         (y (+ x 1)))   ; この x は局所変数の x を指している
    y)
2
> (let* ((y (+ x 1))    ; この x は外の x を指してしまう(局所変数 x はまだ未定義)
         (x 1))
    y)
6

一覧 前へ 次へ