局所変数(局所関数)
1 > (define (fac n)
      (define (iter-fac product counter)
        (if (> counter n)     ;  iter-fac が作られたときのフレームの n を参照
            product
            (iter-fac (* product counter) (+ counter 1))))
      (iter-fac 1 1))
2 > (fac 1)           ; (fac 1) の実行中に iter-fac が定義されている
  1

一覧 前へ 次へ