EoPL

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

うーん、迷走気味。現時点にて parse な試験で問題発生中。

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

色々見てみるに、define-datatype の定義とかって全然関係なくって、ただのナチュラル君の大暴れな事が判明しつつあります。 しかも最初は構文木って 2 分木じゃないと駄目なの? って思ったら、それさえもナチュラルである事が判明しつつあります。やれやれ。

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

現実トウヒの成果を以下に。

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

引き続き、parse とか unparse とかをナニ。とりあえず試験書いた。

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

define-datatype って強力。On Lisp にあるボトムアップデザイン? それにしても BNF から直感的に書けてる、というのはなかなか凄い。 とりあえず occurs-free? の試験の続きを書きます。

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

2.2.2 節突入。例示されているソレ達を順に色々確認。

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

On Lisp の日本語訳の最初らへんを見ててやっぱ直そ、と思い修正検討着手。

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

Exercise 2.5 短時間な現実トウヒの中で、以下なナニがでっち上がりました。

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

Exercise 2.4 ええと、以下な試験で bintree 確認。

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

昨晩何もデキんかった鬱憤がタマりまくっております。ばたばたしてる中での机上の現実トウヒなソレを以下に。

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

昨晩のヤリ残しな試験を書いた。以下な部分。 (and (pair? variant) (memq (car variant) (car type-info)) #t)試験は以下。 (test* "argument is not pair" #f (bintree? 1)) (test* "car of argument is not 'leaf-node and 'interior-node" #f (bintree? …

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

述語な手続きを確認。

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

ええと、Variant-name な手続きが error になるケイスの試験を書いてみます。

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

見出しが長い。そりゃ良いんですが、 (define tree-a (interior-node 'a (leaf-node 2) (leaf-node 3)))で tree-a に (interior-node 'a (leaf-node 2) (leaf-node 3))がセットされてる件について手続き定義を確認。

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

UT 大事ですが、パラで EoPL なナニも進める方向で。 # 休みなんでこっち方面に稼動がなかなか向けれない

define-datatype.scm (2)

とりあえず define-datatype 手続きからかな、と思い define-syntax なナニを確認してます。

define-datatype.scm

以下の 2 行を追加してテストな手続きを動かしてみる事に。 (define eopl:error error) (define define-datatype:pretty-print print)で、gosh 起動して以下。 $ gosh gosh> (add-load-path ".") ("." "/usr/share/gauche/site/lib" "/usr/share/gauche/0.8.…

define-datatype の実装例見つけた

http://www.cs.indiana.edu/eopl/code/interps/define-datatype.scm 確認してみる方向。

EoPL reading (47) 2.1 Specifying Data via Interfaces

何故だ、と言ってるだけなのも微妙なので色々確認。まず引数の値ベースで確認。これは基数が 2 と 16 で見てみます。

EoPL reading (46) 2.1 Specifying Data via Interfaces

Exercise.2-1 fact も実装。 (define (fact n) (if (iszero? (pred n)) (succ zero) (mul n (fact (pred n)))))これでようやく設問の確認ができる、という事で確認。

EoPL reading (45) 2.1 Specifying Data via Interfaces

全然読んでないのがバレバレですね。bigits という記述もありました。とりあえずリトライ。

EoPL reading (44) 2.1 Specifying Data via Interfaces

昨晩の続き Exercise.2-1 昨晩エントリのラストにて実装を引用してますが正しくは以下? (define mul (lambda (x y) (let f ((R0 x) (Acc y) (rslt zero)) (cond ((null? Acc) rslt) ((car Acc) (f (cons #f R0) (cdr Acc) (plus R0 rslt))) (else (f (cons #…

EoPL reading (43) 2.1 Specifying Data via Interfaces

Exercise.2-1 うーん。bigits って何だろ、ググッても微妙なナニしか出てこなかったんですが Method for data compression という所にて以下な記述があった。 "BIGIT" A place holder in the binary number system. For example, a byte is a binary number …

EoPL reading (42) 1.3.1 Free and Bound Variables

Exercise.1-32 帰宅中に map 使えるんじゃね?、とゆーコトに気づきかけましたがそんな単純な話では無さげ、という事に帰宅後気づく。 でも (if (eqv? (car l) ':) (let f ((d 0) (dict dict)) (cond ((null? dict) (cont #f)) ((eq? (cadr l) d) (let f-inne…

EoPL reading (41) 1.3.1 Free and Bound Variables

Exercise.1-32 (test* "(un-lexical-address '(lambda (a) (: 0 1))) should return #f" #f (un-lexical-address '(lambda (a) (: 0 1))))な試験を書いて make してみたらパスしない。とりあえず call/cc 使うべ、と言いつつ手続きに盛り込んだのですがそれ…

EoPL reading (40) 1.3.1 Free and Bound Variables

Exercise.1-32 なんとなく Ex.1-31 の逆で良いカンジをイメージしてるんですがどうなる事やら。

EoPL reading (39) 1.3.1 Free and Bound Variables

何が悪かったのかが判明したので軽くメモを。

EoPL reading (38) 1.3.1 Free and Bound Variables

Exercise.1-31 今日、海に遊びに行く道すがら、データ構造が微妙なんだろな、と思ってる中、単純に ((c) (a b c))みたいなリスト持ってりゃ良いんじゃね? という事に気づく。lambda 式が出てきたらリスト更新で、symbol だったら上記の辞書みたいなのを探索…

EoPL reading (37) 1.3.1 Free and Bound Variables

Exercise.1-31 対象は BNF に書いてある通り。変数名とレキシカルなアドレスのナニなリストを持ち回れば良いのでしょうか。あー、結果も必要ですね。 ざっくり以下なカンジ? (define (lexical-address exp) (define (lexical-address-inner rslt argl l) (if…

EoPL reading (36) 1.3.1 Free and Bound Variables

Exercise.1-26 そういえば、出社途中に試験が足りてないかも、な事に思い至る。