変数テーブル
;変数テーブルglobal開始
(define x "X")
(define incr #t)
;変数テーブルlet開始
(let ((x 0))
(set! incr
;変数テーブルlambda開始
(lambda ()
(begin (set! x (+ x 1))
x))
;変数テーブルlambda終了
))
;変数テーブルlet終了
(incr)
;変数テーブルlambdaで (begin (set! x (+ x 1)) x)
>> 1
(incr)
;変数テーブルlambdaで (begin (set! x (+ x 1)) x)
>> 2
x
;変数テーブルglobalで x
>> "X"Schemeではlexicalな変数テーブルを利用するので、その演算単位が定義された時点でのテーブルを参照すればよい。つまり、構文解析の段階でこのscriptの変数とjavaの変数との対応を付けることができるだろう。