ぱたへね

はてなダイアリーはrustの色分けができないのでこっちに来た

Lisp in Small Pieces Exercise 1.3 extend

extendをこのように定義した場合、lookupとupdate!を定義して、元のバージョンと比較しなさい。

(define exntend
  (lambda (env names values)
     (cons (cons names values) env)))

pass というかリナザウでやるのが辛かったので挫折。
メリットは環境の拡張が早い、デメリットは検索(と更新)が面倒。

definitial が、

(set! (env.global (cons (cons 'name valus) env.global)))

なので、definitial も変えないと整合が取れない。
(car env)で先頭を取り出して、listならextendで拡張した変数、そうじゃなかったらdefinitialで定義した変数とすればいけるが、そこを頑張る意味が無さそうなのでPASS。