2008-08-01から1ヶ月間の記事一覧

SICP 3章読了

ようやく演習も含めて終了。 この章は並列処理だの遅延評価だの自分にとっては馴染み薄いものが多くておもしろかった。とくに3.5のStreamsの章が楽しめたように思う。 ちなみにかかった日数は30と少し。本音を言うと20日間くらいで終わらしたかったが(夏休み…

exercise 3.73~82

ようやく3章終了か。 ex3.73 (define (RC r c dt) (lambda (i v0) (add-stream (scale-stream i r) (integral (scale-stream i (/ 1.0 c)) v0 dt)))) 実行してもあってるか確かめにくいなぁ。 ex3.74 (define zero-crossing (stream-map sign-change-detecto…

exercise 3.72

前回適当に解いちゃった3.72であるが、問題文をちゃんと読むと 組み合わせはピッタリ三つでなくてもいいっぽい気がする。 あとで直しておくか。

コードさっぱり書いてない

気がつけば昨日はゲームするか寝てただけだった。 いかんなぁ、反省。

リズム復活・・・のつもり

昨日の作戦は失敗に終わったが、その後一日中寝倒すことによってリズムが戻った・・・(はず)あと、どうでもいい話だが、9月前半の予定が結構つまっていて素晴らしい。 9/1~4 18切符で高知へ 9/5~7 サークルのコーディング合宿(なにしようかなぁ。というか…

exercise 3.68~72

生活リズムがこわれているので(昨日は9時睡眠、5時起床。正確には17時起床だけどね☆)、徹夜して翌日の夜まで起きる→寝る→生活リズムが戻るね! ・・・とかバカな考えを実行中。後半に行くにつれ分け分からんコードになっているのは使用です。 まぁいいや、…

exercise 3.67

少し勘違いしてたので解くのに時間がかかった・・・orz (define (pairs s t) (cons-stream (list (stream-car s) (stream-car t)) (interleave (stream-map (lambda (x) (list (stream-car s) x)) (stream-cdr t)) (pairs (stream-cdr s) t)))) ほむ。某所に…

exercise 3.66

まぁ多分答えは出せたはず。 ただし証明はしてない。どうしましょ。 とりあえず、紙に書いて適当に推論した結果がこれ (define (ref-of-m-n m n) (cond ((> m n) (error "m is larger than n!" (list m n))) ((= m n) (- (expt 2 m) 2)) (else (- (* (expt 2…

exercise 3.64, 65

まずい、今日は進みが遅い・・・。 それ以上に生活リズムが… ex3.64 (define (stream-limit stream tolerance) (if (< (abs (- (stream-car stream) (stream-car (stream-cdr stream)))) tolerance) (stream-car (stream-cdr stream)) (stream-limit (stream…

exercise 3.63

こういう「説明せよ!」というタイプの問題は単純にコード書くより時間がかかる・・・orz問題は (define (sqrt-stream x) (cons-stream 1.0 (stream-map (lambda (guess) (sqrt-improve guess x)) (sqrt-stream x)))) (define (sqrt-stream x) (define guess…

exercise 3.58~62

やっとch3.5.2が終わった・・・ いつになったら4章にたどり着くのやら。 っとその前に、無限リストだとdisplay-streamではちょっと不便なので (define (display-stream-n-lines stream n) (if (= n 0) 'done (begin (display-line (stream-car stream)) (dis…

exercise 3.53~57

ex3.53 2^nですね、わかります。 ex3.54 (define (mul-stream s1 s2) (stream-map * s1 s2)) (define factorials (cons-stream 1 (mul-stream factorials (stream-cdr integers)))) ex3.55 ;; なんとなく二つ書いてみた。 ;; (define (partial-sums stream) …

exercise 3.52

実家でだらだら過ごしすぎた・・・。 それはともかく、代入が絡むと色々面倒だと実感。 ちなみに以下の説明はほとんど殴り書き・・・。 というか、ちゃんと理解できてるのかな・・・ とりあえず、まずはメモ化してるバージョン。 問題にあるようにsumの値を…

最新タイトル

見て気づいたけど、ここんところSICPしかやってない。しかもスピード遅い・・・orz

exercise 3.50~51

3.50 (define (stream-map proc . argstreams) (if (stream-null? (car argstreams)) the-empty-stream (cons-stream (apply proc (map stream-car argstreams)) (apply stream-map (cons proc (map stream-cdr argstreams)))))) applyの最後の引数はリスト…

exercise 3.43~46

実家でまたーりしてたら、部活のICPC練習会忘れてた・・・。orz ゆっくりしていった結果がk(ry

exercise 3.47~49

ようやく3.4終了。 ページ自体は短かったが、意外に時間がかかったなぁ。少し長いので続きを読むから。

exercise 3.39~42

parallel-executeとかどうやって実行すんのさ… テストできないと何だかつらいなぁ。まぁそれはさておき、 ex3.39 101, 121以外に 100が生じる。 具体的には、 P1がアクセス→P2→P1が100をxにset! ex3.40 手で書いて試した 10^2, 10^3, 10^4, 10^5, 10^6 の5…

exercise 3.38

a.組み合わせは6通りで、結果は35, 40, 45 ,50の4通り。 b.図が面倒すぎるだろ・・・jkしかし、bは全部洗い出すべきなのかな。でも問題文にはsome other valueってあるしなぁ。

exercise 3.32 続き

とりあえず、試したコードでも張ってみるか

リズム崩壊

コミケから帰還してからというもの ・ネットサーフィン ・ゲーム ・同人誌眺める ・SICP読み進めるというのを眠くなるまで(正確には寝落ちするまで)やりつづけると、いつの間にか昼夜逆転ですよ。 日が暮れてから目を覚ますとか・・・ どうみても廃人です…

exercise 3.37

解答自体は簡単。注釈の部分が興味深い気がする。 まぁそれはさておきコード晒すか (define (celsius-fahrenheit-converter x) (c+ (c* (c/ (cv 9) (cv 5)) x) (cv 32))) (define (c+ x y) (let ((z (make-connector))) (adder x y z) z)) (define (c* x y) …

exercise 3.36

図をアップするのがめんどいのでパス。 emacsのpicture-modeを試してみるのが良いのかなぁ・・・

exercise 3.35

雛形はできてるし、adderとかの例もあるので簡単かな。 (define (square n) (* n n)) (define (squarer a b) (define (process-new-value) (if (has-value? b) (if (< (get-value b) 0) (error "square less than 0 -- SQUARE" (get-value b)) (set-value! a…

exercise 3.34

multiplierは三つのconnectorのうち二つが確定してれば、もう一つを確定させる。 ということで、 (define (squarer a b) (multiplier a a b)) なんてやると、 bが決まってもaが決まらなくなってしまう。 ちなみにaが決まるとbは決まる gosh> (define a (make…

exercise 3.33

(define (averager a b c) (let ((d (make-connector)) (e (make-connector))) (adder a b d) (multiplier c e d) (constant 2.0 e) 'ok)) こんな感じ。 gosh> (define x (make-connector)) x gosh> (define y (make-connector)) y gosh> (define z (make-co…

帰還

東京から帰還。 青春18切符は疲れるなぁ。

exercise 3.32

すこしハマった・・・。ハマった原因と解決した方法は後で晒そう。wireに登録されるand-action-procedureは、呼び出されたときにoutputの値を決め(このタイミングが重要!。agendaから呼ばれるときにoutputの値が決まるのではない)、その後agendaに登録す…

exercise 3.31

コミケで買った同人も消費したのでやることが済んだのでSICP再開。というかそろそろICPCの練習とかも再開したいが、それは別の話か。問題はmake-wireの中のaccept-action-procedure!がprocedureの登録時に一度そのprocを読んでるのは何故か?って話。 (英単…

端末エミュレーター

なんとなくurxvtに変更してみた。 今のところ満足。設定はgoogle先生に聞いて色々なとこからコピペ。なんというゆとり・・・。