EoPL

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 使って計算云々な役立て方をイメージするのが微妙なんでしょうか。

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 現実トウヒで以下なプロトタイプを作ってみた。

Ex 2.24

英語が読めん。てーか負け惜しみではないんですが substitutions なオブジェクトがどう動くのか、なイメージがナニ。 と言いつつ問題文の全体を眺めてみるに、難しく考えすぎてるのかな。

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 ではメッセージパッシングで云々してます。これがいっちゃん楽、っていう固定概念をステないと駄目な気がしますが、とりあえず実装してみます。

EoPL reading (110) 2.3 Representation Strategies for Data Types

the world of Android の開始前に紙の上で検討。

EoPL reading (109) 2.3 Representation Strategies for Data Types

2.3.3 節に突入。ソース修正。

EoPL reading (108) 2.3 Representation Strategies for Data Types

とりあえず Exercise 2.17 は昨晩のナニで OK ってコトにします。

反則の解

empty-env が戻す手続きオブジェクトは error 手続きを呼び出して例外を発生させる。 (define empty-env (lambda () (lambda (sym) (eopl:error 'apply-env "No binding for ~s" sym))))Gauche では guard という手続きがあるので has-association? はこうす…

EoPL reading (107) 2.3 Representation Strategies for Data Types

再び合間を縫って検討。

EoPL reading (106) 2.3 Representation Strategies for Data Types

OSC の合間をぬって練習問題をナニ。電気が無いので紙の上で検討してたりして。

EoPL reading (105) 2.3 Representation Strategies for Data Types

Exercise 2.15 stack は手続きオブジェクトなんだけど操作の数が多いし云々、と頭を痛めつつ移動中の車の中で実装に思い至る。調子が良いトキって端末の前じゃない方が良いひらめきがあるのかどうなのか。 # そもそも調子が良いのかどうかも不明ですが (何

EoPL reading (104) 2.3 Representation Strategies for Data Types

ええと、Figure 2.3 の試験を書いてから Exercise 2.15 に着手する方向で。

EoPL reading (103) 2.3 Representation Strategies for Data Types

Exercise 2.14 書き方が難しい。ってかそれ以前の問題もあったりなんかします。

EoPL reading (102) 2.2 An Abstraction for Inductive Data Type

昨晩夜更かしし杉で午前中 gdgd だった。現在夕刻なんですが続きをナニ。