SICP
本日、第二回目の読書会@宜野湾 McDonalds でした。sw@mac の中の人と、なんですがばりばりの大学生と第六感プログラマでは勝負にならない模様。 # や、勝負してるツモリは全然無いッスけど
過去ログを漁ってみたら 1 章はスルーしまくっている事が判明。
たとえば amount が 16 だと filter はそれと = か、という事で良いのか。とりあえず、両替対象な coin の候補なリストを作る手続きはでっち上がってます。 ;; (make-list 16 '(50 25 10 5 1)) -> '(10 5 1) (define (make-list n l) (cond ((null? l) '()) …
いやー、勉強になりましたというか刺激になったというか、自分がいかに_感覚派_であるかが認識できた、といいますか。あと、schemer 的には常識なんだろうと思いますが、わしが知らん emacs の使い方してて面白かった。
宿題が出た。 SICP 1.2.2 の両替計算のパターンをリストにする、というもの。帰宅中にできた気がしたんですが気のせいでした。
第一回は諸種の事由にて 11/3 になる。どの辺りまで読んでる? とか聞いて思わずテキストを開き、暫く地球の裏側らへんに行っちゃってました。(何 なんと言えばよいやら分かりませんが、楽しみ。
先日ご縁ができた若い人と SICP を読む会を継続開催することになりました。楽しみ。
わははは的世界が広がっている若い人のエントリです。 Y-Combinator, lambda再帰, 不動点 正直不動点とかあまり理解できてないまま、読み進めてたりしたなぁ、と。
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 …
Exercise 2.49 とりあえず書いてある順で Exercise 2.49 に着手。しかもこれ、ビンゴかダウトかは手続きを作成した時点では確認不可能だったりする。
2.46 および 2.47 をざくっと盛り込み。まず 2.46 から。
何故だか思い出したような取り組み。自分メモですが、テキストはここ。
色々故がございまして、再読。stratifed design なんてのは tcp/ip とか linux kernel とかな例があるようにプログラマが好きなナニ。 この節でもいっちゃんてっぺんの抽象的な部分から切り出していきつつ下の層の実装に向かってて、インターフェースでプロ…
port search texinfo して見つけたパケジ。 sicp @0.0.1 (lang) Lytha Ayth's texinfo version of Structure and Interpretation of Computer Programs -- 2nd ed. (Harold Abelson and Gerald Jay Sussman, with Julie Sussman)なんて言えば良いのか分かり…
emacs+gauche で SICP に着手、との連絡が twitter 経由でナニ。 sw@mac わははは的な世界が若いうちから広がるなんて裏山の椎茸。
このあたり、C で書けないかを検討してみます。とりあえず手続き定義の中で define しているナニを書き換えてみる方向で。
追記せずエントリを改めてみます。この前段なエントリで出てきた手続きをレジスタ計算機の言葉に置き換えれば良い、という事に気がつきました。
再開。一年少々前の仕掛りを発見。何故かディレクトリの名前が chroot.home だったのはどーゆー意味なのだろうか。
gauche がヤッてる scheme から C を出力するナニをきっちり修得したら凄い世界が開ける気が、今更してきました。SICP の最後らへんの問題はソレだったのではないかと類推。 キチッとヤッてみた方が良さげ。
素人くさいソレ以外にも irc でヤッてるらしい SICPオンライン勉強会を金曜夜定期的に開催します
ってコトにしてたんですが、面白げなものを見つけた。 Adventures in Advanced Symbolic Programming
まだ 2 問残っている上にスルーした箇所もあるのですが感想を投入。
昨日は最新のソースツリーを職場方面に送付するのを忘れてて作業できず。当分何もしていないのでリハビリが必要な世界になってるなぁ。 とりあえず (397) なエントリの最後で これは number.c をパクって試験だけ書くか。 と書いてますが、コピーしてきて既…
今日は残りの STRING SYMBOL NUMBER をヤッツける事に。こっから先は gauche-0.1 をカンニング OK という事を自分で許可。通勤途上で STRING はスルーしてやるか、と思ったりしたんですが、とりあえずヤッてみます。
今の等価述語で mem* とか ass* とかにトライ。とりあえず memq な試験を書いてみる。
移動中にいくつか作業。
てーコトで次は append と reverse ですか。append を scheme で書いたらどうなるんだろ、とぼさっとヘッダを見ながら考えてると Scm_LastPair() という手続きの宣言を発見。これがあったら SCM_APPEND なマクロが使えるな。
帰宅後、今日分のソースを送ってない事に気づく。仕方が無いのでエントリを見ながらもう一度修正を盛り込む。
ざっくり以下なカンジの試験を作っていました。 static void test_priv_CopyList(ScmObj x, ScmObj y) { ScmObj tmp_x, tmp_y; for(tmp_x = x, tmp_y = y; SCM_PAIRP(tmp_x); ) { tmp_x = SCM_CDR(tmp_x); tmp_y = SCM_CDR(tmp_y); } } void test_scheme_Scm…
もう我慢できん。gauche-0.1 の boolean.c をのぞき見てしまう。