SICP

勉強ノート - SICP(7):高階手続き

これは楽しすぎる! 関数の引数に関数を渡すっていうのが高階手続き。いわゆるコールバック関数みたいなもんだろうと理解。 以下SICPに載っていたSchemeのコードをJavaScriptに書き換えた版。 <html> <head> <script> var $ = function (id) { return document.getElementById(id</head></html>…

勉強ノート - SICP(6)

問題1.16〜1.19まで解きましたよー。 解いたって言うか、挫折しましたよー(涙 出来るかぁこんな問題><; おかげでだんだんSchemeのコツが掴めてきたぞ。 問題1.16 対数的ステップ数の反復的べき乗手続きを設計しなさい。 (define (fast-expt b n) (fe-iter…

自分用メモ(1.16)

反復的。

勉強ノート - SICP(5)

とりあえず、1.14と1.15を解いた・・・。 解いたんだけど、計算量というか、増加の程度がよくわからなかった。 問題1.14 計算過程をグラフに起こす問題は、出来た。これは手続きを見て、どう展開されていくかを把握する練習みたいな感じですね。 次にこの手…

勉強ノート - SICP(4)

だんだん問題が難しくなってきた。もう解けない><; つーかまだ30ページもいってないんだけど。 問題1.11 n<3だったらf(n)=n。 n≧3だったらf(n) = f(n - 1) + 2f(n - 2) + 3f(n - 3)。 これを再帰的プロセスと反復プロセスで書いてみてっていう問題。 地…

勉強ノート - SICP(3)

今回は問題1.9と1.10を解きましたよー。 かなり根気が必要だったです・・・。 今回の重要そうなキーワード 線形再帰プロセス 線形反復プロセス 手続きを展開したときに、いったんプロセスが膨れあがるように展開されていって収束するのが線形再帰。プロセス…

勉強ノート - SICP(1.5)

問題1.7が自分にとって異常に難しかったので1.6と併せてメモ。 問題1.6 ifを、condを利用して作った手続きで代用した場合の動作について。つまりifが特殊な形式である理由を理解するための問題。 (define (new-if predicate then-clause else-clause) (cond …

勉強ノート - SICP(2)

問題1.8を解いたよー。ついカッとなってめちゃイケ見ながら。 ;; ;; square ;; 平方数を求める ;; (define (square x) (* x x)) ;; ;; cubic ;; 立方数を求める ;; (define (cubic x) (* x x x)) ;; ;; improve ;; ニュートン法を使って、より良い立方根の近…

勉強ノート - SICP(1)

さて、方法序説だけ読んでても意味がないので、「計算機プログラムの構造と解釈」も読み始めましたよー。 いやー、Amazonの書評で「翻訳がウンコだ」みたいな事が書いてありますが、全然普通に読めるじゃないですか。ドスエフスキーやカーの翻訳モノに比べれ…