SICP

環境フレームモデル

1.1.8とかでsqrtで使用する各手続きを内部定義した場合、 (define (sqrt x) (define (good-enough? guess) (< (abs (- (square guess) x)) 0.001)) (define (improve guess) (average guess (/ x guess))) (define (sqrt-iter guess) (if (good-enough? gues…

defineとset!の違い

(全然解釈を間違っている気がするので、見直します。) http://d.hatena.ne.jp/yukichanko/20090819/1250700640 で、少し思ったこと。『defineでも再定義ができるんだったら、とset!の違いって何やねん!!』ですが、SICP p.139の注釈で言及されてますね。 現…

両替の計算

昔、この話を説明してもらった時に、いまいち両替のアルゴリズムがよくわからなかった。 それで、今日電車の中で読んでも、やっぱりもやもやしてしまったので、一度、整理してみよっと。http://kreisel.fam.cx/webmaster/clog/2008-06-09-1.html を参考にさ…

SICP Lite #2

いや〜、参加者のみなさん、お疲れさまでした。 今日は、学生の方が参加されてたり、前回と違う感じで、また面白かったです。個人的に引っかかったところを列挙しておきます。 束縛と言う言葉の意味 束縛と言われると、もう2度と変更できない、イメージを持…

明日はSICP-Lite #2

ていうか、全然予習してないよ〜。と言うことで、本(1.2 手続きとその生成するプロセス)を読み読み。まだまだ序盤なんだけど、初心者には理解しがたい再帰プロセスと反復プロセスの話。Cとか普通の言語で、手続きの中で自分自身を呼び出してたら、『問答無用…

SICP Lite #1

人生初の勉強会に参加!! id:tannzさんお疲れさまでした。 http://groups.google.co.jp/group/sicp-liteまず、驚いたのは、7人中6人がMac。ぼくは、にわかマカーだけど、皆さん本格的っぽい。 そして、iPhonex2に、Androidx2。すでにツボっす。さて、内容は…

止まってる

5章の途中で止まっちゃってます。最後まで読み切りたいんだけど、いろんな誘惑が…。でも、今年度中には、読み切るぞ!!

進みが遅い

もともと3章まではある程度素養があるけど、4章以降はほとんどはじめての分野なんだよね。 第4章は、Metacircular(合ってるかな?)と言うことで、Lispの上にmyLispを構築するってもの。 自分で言語を作っている感触があるので面白いんだろうけど、まだ面白さ…

時間の測定

Schemeで処理時間を測定するには、time関数を使います。 (time (fib 30)) と言った具合。簡単です。 ちなみに、このマシンでは、fib関数は30次ぐらいが限界です。これで、memoizeの効果を見てみると… (time (fib 30)) ;(time (fib 30)) ; real 0.674 ; user …