scheme

EoPL reading (134) 3.2 The Front End

SLLGEN というのは define-datatype と同様で EoPL 独自のソレらしい。以下で取得。 $ wget http://www.cs.indiana.edu/eopl/code/interps/sllgen.scm --2009-10-22 22:58:03-- http://www.cs.indiana.edu/eopl/code/interps/sllgen.scmうーん。とりあえず頑…

EoPL reading (133) 3.1 A Simple Interpreter

Exercise 3.2 ええと問題の意図を微妙にはかりきれてなかったんですが、おそらくは SICP に出てくる normal-order evaluation と applicative-order evaluation の話と見ました。 あれは結果に影響があるケイスもあるはず。 この問題もこの程度で次行きます…

EoPL reading (132) 3.1 A Simple Interpreter

Figure 3.2 を実装してみる。Ex 3.1 は OK ってコトにしといて次に進む。

EoPL reading (131) 3.1 A Simple Interpreter

嫌も応も無く英語が読めんと微妙な世界に突入している模様。 Exercise 3.1 ええと、以下な実装にて

EoPL reading (130) 2.4 A Queue Abstraction

よく考えたら 2.4 でした。で試験も書いたので以下にて。

EoPL reading (129) 2.3 Representation Strategies for Data Types

Exercise 2.26 うーん。難解。Figure 2.5 を参考に手続きを書けば良いのは分かってるんですが。

EoPL reading (128) 2.3 Representation Strategies for Data Types

小出しになってしまってますがご容赦下さい。続きです。 t が var-term 以外のケイスを以下に。 u が var-term の場合、引数を入れ替えて unify-term 呼び出し u が constant-term の場合 t が constant-term で値が同一なら (empty-subst) を戻す u が app-…

EoPL reading (127) 2.3 Representation Strategies for Data Types

昨晩の懇親会開始待ちで検討したナニです。。直前エントリの続きです。スデに呑み屋の中。一人でビール呑みながらノート開いてるさまは微妙にちがいない。

EoPL reading (126) 2.3 Representation Strategies for Data Types

待ち時間で整理してみる事に。 まず unify-term の仕様 (というか実装) から。 t が var-term の場合 u が var-term 又は u に含まれる id に tid が無い場合は unit-subst 手続きに tid と u を渡した結果を戻す 上記の条件に合致しない場合、#f を戻す t …

EoPL reading (125) 2.3 Representation Strategies for Data Types

直前エントリで unify-terms が #f を戻すケイスを列挙してますが、引数リストの cdr がこうなってれば良いのか。ちなみに car は #f を戻さない、というのが基本。

EoPL reading (124) 2.3 Representation Strategies for Data Types

なんとなく目が覚めたので続行。

EoPL reading (123) 2.3 Representation Strategies for Data Types

Exercise 2.25 unify-terms を検討。 ts と us が両方同時に '() なら (empty-subst) を戻す ts あるいは us のどちらかが '() なら #f を戻す 以下。 (test* "(unify-terms '() '())" '(empty-subst-rec) (unify-terms '() '())) (test* "(unify-terms '() …

EoPL reading (122) 2.3 Representation Strategies for Data Types

Exercise 2.25 all-ids ってどっかで見たんだけどな、と思いつつ grep しても出てこなかった。テキストを遡ってみたら 2.10 にあるな。2.2 節はディレクトリ別にしてたので出てこなかったのか。以下なカンジ。 (add-load-path ".") (load "define-datatype")…

EoPL reading (121) 2.3 Representation Strategies for Data Types

Exercise 2.25 よく分からんのう、と言いつつ手続き定義をニラむ。以下、unify-term の一部。 (define unify-term (lambda (t u) (cases term t (var-term (tid) (if (or (var-term? u) (not (memv tid (all-ids u)))) (unit-subst tid u) #f)) (else

EoPL reading (120) 2.3 Representation Strategies for Data Types

昨晩の続き。subst-in-terms です。 ぢつは仕事中、ってか休憩中に map 使えるぢゃん、ってコトに気づく。

EoPL reading (119) 2.3 Representation Strategies for Data Types

とりあえず、鍛錬をこつこつ続ける事に。高等数学きちんとヤッてないので scheme 使って計算云々な役立て方をイメージするのが微妙なんでしょうか。

○を書く夢を見た

なんとなく○を書いてみたくなったので色々検討。どんな painter を定義すれば良いか、と言いつつ色々検討。

2.2.4 図形言語 (5)

2.51 の below 盛り込み。 (define (below painter1 painter2) (let ((split-point (make-vect 0.0 0.5)) (right-corner (make-vect 1.0 0.0))) (let ((paint-top (transform-painter painter1 split-point (add-vect ritht-corner split-point) (make-vect …

2.2.4 図形言語 (4)

Exercise 2.49 とりあえず書いてある順で Exercise 2.49 に着手。しかもこれ、ビンゴかダウトかは手続きを作成した時点では確認不可能だったりする。

2.2.4 図形言語 (3)

2.46 および 2.47 をざくっと盛り込み。まず 2.46 から。

2.2.4 図形言語 (2)

何故だか思い出したような取り組み。自分メモですが、テキストはここ。

2.2.4 図形言語

色々故がございまして、再読。stratifed design なんてのは tcp/ip とか linux kernel とかな例があるようにプログラマが好きなナニ。 この節でもいっちゃんてっぺんの抽象的な部分から切り出していきつつ下の層の実装に向かってて、インターフェースでプロ…

EoPL reading (118) 2.3 Representation Strategies for Data Types

理解が微妙なまま進める、というのも手を動かし辛い。とりあえず昨晩のソレをビンゴと見てつき進むしかないな。

EoPL reading (117) 2.3 Representation Strategies for Data Types

Exercise 2.24 のつづき 直前エントリにて substitution なオブジェクトには置き換え対象の term と置換後の symbol が入ってて、渡された symbol と term の symbol が eqv? だったら置き換える、という理解。 と思ったんですが、逆かな、って思いはじめて…

EoPL reading (116) 2.3 Representation Strategies for Data Types

Exercise 2.24 のつづき 今日の晩メシ担当らしい。作成開始するまでの間で全体見つつ substitution を整理してみる。とりあえず最終的に作成する subst-in-term 手続きはイメージ的には以下なカンジになるのだろうか。 (define subst-in-term (lambda (s t) …

EoPL reading (115) 2.3 Representation Strategies for Data Types

Exercise 2.24 現実トウヒで以下なプロトタイプを作ってみた。

EoPL reading (114) 2.3 Representation Strategies for Data Types

Exercise 2.24 これ、英語を解読する時点で難解。ってか substitution なオブジェクトが何なのかがイメージできてない。BNF から考える必要あり、なのだろうか。

EoPL reading (113) 2.3 Representation Strategies for Data Types

Exercise 2.23 single pair of ribs で実装ときた。これって gosh> (empty-env) () gosh>で、 gosh> (extend-env '(y) '(8) (empty-env)) ((y) . (8)) gosh>で、 gosh> (extend-env '(d x) '(6 7) (exptend-env '(y) '(8) (empty-env))) ((d x y) . (6 7 8))…

EoPL reading (112) 2.3 Representation Strategies for Data Types

Exercise 2.21 検討前に思わず手が動いた。 $ gosh gosh> (cons '(() ()) '()) ((() ())) gosh> これはこれは。しかも問題解いてない (とほほ

EoPL reading (111) 2.3 Representation Strategies for Data Types

Exercise 2.20 用件済んだので次の問題に着手。2.17 ではメッセージパッシングで云々してます。これがいっちゃん楽、っていう固定概念をステないと駄目な気がしますが、とりあえず実装してみます。