2007-12-04から1日間の記事一覧

Schemeをつくろう(7) ビルトイン関数の登録。

足し算だけじゃ寂しくなってきたので、ビルトイン関数を登録したいと思います。 新たなオブジェクト定義 ビルトイン関数を実行させようと思うと、新たなオブジェクトが必要となるので、function型を作ります。 struct function { int length; struct object …

環境破壊

環境の考察。 Gauche gosh> (define a (define b 1)) a gosh> b 1へぇぇ。 MzScheme > (define a (define b 1)) stdin::10: define: not allowed in an expression context in: (define b 1)出来なかった。 ついでに SBCL * (defvar a (defvar b 1)) A * a 1…

SICPを読む(68) 問題 2.53 - 2.55 記号データ

2.3に入ります。記号データってのは、シンボルのこと? 問題 2.53 シンボルとmemqの問題。 (list 'a 'b 'c) ; (a b c) (list (list 'george)) ; ((george)) (cdr '((x1 x2) (y1 y2))) ; ((y1 y2)) (cadr '((x1 x2) (y1 y2))) ; (y1 y2) (pair? (car '(a short…

Schemeをつくろう(8) 環境について。

さて、環境について考えてみます。ここら辺はSICPに書いてあるハズなんですが、まだ「全く読んでいない」ので「僕の想像」で作ってみることにします。 復習 まず、環境をリストで作りました。 ((cons . function:0x8049307[2]) (cdr . function:0x8049360[1]…