next up previous
Next: 1.2 スペシャルフォームの処理 Up: 1 Schemeインタプリタの実現 Previous: 1 Schemeインタプリタの実現

1.1 シンボルとアトムの処理

変数の評価というのはその値をとってくることですが,その評価の際に環境情 報が与えられればその環境内での値を取り出し,その環境にその変数が定義さ れていなければ,大域環境で評価をします. 環境というのは変数のバインディング情報を保持した環境のことをいいます. シンボル以外のアトムには,数字,文字,文字列,などがあります.

(defun get-var (var env)
  (if (assoc var env)
      (second (assoc var env))
    (get-global-var var)))
(defun get-global-var (var)
  (get var 'scheme-global-value "unbound"))

(defun set-var! (var value env)
  (if (assoc var env)
      (setf (second (assoc var env)) value)
    (set-global-var! var value))
  value)

(defun set-global-var! (var value)
  (setf (get var 'scheme-global-value) value))


generated through LaTeX2HTML. M.Inaba 平成18年5月6日