SICP

第14回SICP勉強会

内容 2.2.3 公認インターフェースとしての並び 並びの演算 問題 問題2.33 ;; 問題2.33 (define (accumulate op initial sequence) (if (null? sequence) initial (op (car sequence) (accumulate op initial (cdr sequence))))) (define nil '()) ;; map (de…

第13回SICP勉強会

先週UPを忘れていた 内容 階層構造 再帰は木構造を扱う自然な道具である 木の写像 問題 問題2.24 ;; 問題2.24 ;; これは絵を書けばいいのかな (list 1 (list 2 (list 3 4))) ;; gosh> (1 (2 (3 4))) ;; 箱の絵 ;; http://f.hatena.ne.jp/rindai87/2012032423…

第12回SICP勉強会

内容 consの閉包性 一般に、データオブジェクトを組み合わせる演算は、その演算を使って何かを組み合わせた結果がまた同じ演算を使って組み合わせられるという時、閉包性を満足する 2.2.1 並びの表現 対を使って出来る有用な構造は並び(sequence)である。 並…

第11回SICP勉強会

内容 今回は問題ばっかり 問題 問題2.10 ;; 問題2.10 ;; 0をまたがる区間で割った時、どうなるか分からないことを調べる (define R1 (make-interval 5 10)) (define R2 (make-interval 1 5)) (define R3 (make-interval -10 -5)) (define R4 (make-interval …

第10回SICP勉強会

内容 church数 例だけ読んでいてもよくわからなかったけど、下の記事を眺めてたらなんとなく分かった気がしたかも selflearn @ ウィキ - SICP (問題2.1 -) 404 Blog Not Found:TuringとChurchの狭間で ex2.6 Church数 - tszの日記 データ抽象の続き こちらは…

第9回SICP勉強会

今日から2章。勉強会中に軽くメモって、終了と同時に投下するというパターン 2.1 データ抽象入門 合成データの要素としてのcons, car, cdr 2.1.1 有理数の算術演算 print-ratで#が表示されるのは最後のdisplayの返り値として#が返ってくるから 2.1.2 抽象の…

第8回SICP勉強会

今回は採用活動のお手伝いで大阪出張のため、勉強会本編には参加できず。 今回で一章が終わりだったので、参加できずに残念。 1.3.4 値として返される手続き 手続きを値として返すことができるという話 Newton法 ニュートン法 - Wikipedia 抽象と第一級手続…

第7回SICP勉強会

内容 関数の不動点の探索 区間二分探索を利用する 二分法 - Wikipedia 関数の値が正と負である点にはさまれている区間には少なくとも1つの零点があるはずとして探索 関数の不動点の探索 を満たす点を不動点という 不動点 - Wikipedia 問題 問題1.35 ;; 問題…

第6回SICP勉強会

1.3.2 lambdaを使う手続きの構築 手続きを作り出す特殊形式lambda 一般的にlambdaは、手続きに名前がつかない他は、defineと同様に手続きを作り出すのに使う 局所変数を作り出すlet let式は基盤となるlambda作用の構文シュガーに過ぎない let式で指定された…

第5回SICP勉強会

1.3 高階手続きによる抽象 手続きを扱う手続きを高階手続きという(higherorder procedures) 1.3.1 引数としての手続き 引数に手続きをとることで抽象化できますよ、という話 問題1.25 ;; 問題1.25 ;; オリジナルのexpmod(p28) ;; baseのexp乗の、mの剰余を求…

第5回社内SICP勉強会メモ

第4回の話題 こちらに書きました 範囲 P26の1.2.5最大公約数からP30の問題1.24まで 内容 1.2.5 最大公約数 アルゴリズム aをbで割った剰余をrとすると、aとbの公約数はbとrの公約数と全く同じという考え方 (define (gcd a b) (if (= b 0) a (gcd b (remaind…

第4回の備忘録

今回は色々と話題が出たので。 完全なメモです。 計算量の話 Oは上限だけを抑えている(最大の計算量のみを抑えている) Θは上限と下限を抑えている ランダウの記号 - Wikipedia 計算量 - Security Akademeia 恥ずかしながら、O記法とΘ記法は若干異なるとい…

社内SICP勉強会(第4回)

第3回の話題 末尾再帰はどの処理系でも必ずしもデフォルトで有効ではない (追記) 勉強会で出た話はLispの実装系についての話でした。 Schemeでは有効のようです。 範囲 P23 1.2.3 増加の程度からP26 問題1.9まで 内容 1.2.3 増加の程度 階乗計算の線形再帰…

社内SICP勉強会(第3回)

第2回の話題 浮動小数点の話題は、最近セキュリティがらみでありましたね。 PHPの浮動小数点処理に無限ループのバグ | スラッシュドット・ジャパン オープンソース 浮動小数点変換バグはJavaにもあった ここでこの話につながるのかなるほどーと思った。 範…

社内SICP勉強会(第2回)

まだまだSchemeに慣れない。 前回の勉強会で紹介されたtraceのしかた (use slib) (require 'trace) (trace hoge) とするとhogeの挙動を追いかけてくれる。 範囲 1.1.7(P12)から1.1の終わり(P17)まで 1.1.7 Newton法 復習した。 Newton法で平方根を求める - r…

社内SICP勉強会(第1回)

社内SICP勉強会が始まる。随時メモを公開していこうと思う。環境はMac + Gauche + Emacs。 範囲 始めから問題1.5(P12)まで 内容 値と記号を対応付ける(名前とオブジェクトの対を記憶しておく)ことを環境(environment、より正確には大域環境(grobal environme…