2008-01-01から1年間の記事一覧

SICP 1.46

iterative-improveは意外とすんなりできた。 こういう抽象化がレイヤーがあることをパッと思いつけるようになりたい。 fixed-pointの実装はgood-enough?の定義がわからなくて答えを見て納得した。

SICP 1.45

めんどいので省略。

SICP 1.44

ちょっと動かしてみたけど、これで正しいのかどうかわからん。

SICP 1.43

1.41の2回がn回になっただけだが、思ったよりも手こずった。 S式を評価した結果、何(値 or 関数)が返ってくるのかを考えるとわかりやすいようだ。 これは自前で型推論するってことだな。

SICP 1.42

1.41の引数が2つになっただけ。

SICP 1.41

MIT記法の中でlambdaを書くとちょっと不思議な感じがする。 lambdaが2回出てきた方が、関数を返す関数であることが見た目にわかりやすい。

SICP 1.40

答えを出すのは何でもないけど、実際に動かすのは面倒。 関数の定義があっちこっちに散らばっているんだもの。

予防接種

昨日インフルエンザの予防接種を受けたんだけど、今日になって身体がだるい。 そういうものなのかな? 2週間後にもう一度来いって言われたから、また行かないといけないんだけど、気が進まない。 そもそも予防接種自体、あまり喜んで受けるものじゃないな。

SICP 1.39

cont-fracを使って、とは書いてなかったけど、勝手に使った。 他の解き方はわからない。

SICP 1.38

これも、ただcont-fracを使っただけ。

SICP 1.37

1/φの近似で4桁の精度の解を得るための項数って、実際に試して求めればいいんだろうか。

SICP 1.36

ステップ数の比較は省略。

SICP 1.35

ただfixed-point関数を使うだけ。

accumulate

SICPの1章で出てきたaccumulateって、foldlと良く似ている。 Haskellで書くとこんな感じ。コンパイルはしてない。 accumulate combiner null-value term a next b = let l = [x | x <- iterate next a, x < b] l' = map term l in foldl combiner null-value…

SICP 1.34

これで良いのかな。Gaucheで試した動作とは一致する。 この問題を作った意図がわからん。

SICP 1.33

1.32から更に一段の抽象化。 素数判定とかを引っ張り出してくるのは面倒だけど、問題自体は簡単。

SICP 1.32

前の問題の一般化。こういうふうに順序立ててやると難しくない。 でもいきなり書けと言われると、できるかどうか疑わしい。

SICP 1.31

これも。

SICP 1.30

難しくなかった。

SICP 1.29

こんなんで良いのか? とりあえず結果は合ってる。

昨日は夢の中でゴキブリを5匹ほど退治した。殺虫剤を至近距離から噴射しまくった。目が覚めてから何だかぐったりした気分になった。

レバレッジ勉強法を読んで

勉強の効率がすごく悪いと自覚しているので、何か対策をとろうと思った。どういう方法が良いのか判断できないので、とりあえずウェブで評判が良かった本を読んで参考にしてみることにした。

コーヒー

毎日数杯のコーヒーを欠かさず飲んでいるが、美味しいと思えることはあまりない。何となく惰性で飲んでいる感じだ。飲まないと眠気が取れない気がする。 それでも、一日の中で一番最初に飲むコーヒー、これが一番。後のは全部蛇足だ。仕事しながら飲んでたら…

RemovableStorageMonitor.csの話

RemovableStorageMonitor.csは、その1とその2で書いた方法を両方実装し、両者の差を気にせず扱えるようにしたものである。また、メディアの着脱を検知した時にイベントを発生させるように実装してある。RemovableStorageMonitorクラスのユーザーは、リムーバ…

C#でリムーバブルメディアの着脱を検知する方法 その2

その1ではリムーバブルメディアの着脱を検知する方法を説明した。この方法はUSBメモリなどではうまく機能するが、多数のメディアの読み書きに対応したメディアリーダ(例: google:image:USB メディア リーダー)では問題が起こるかもしれない。例えば、私が使…

C#でリムーバブルメディアの着脱を検知する方法 その1

以前、PhotoCollectorについてちょっと書いた時に、RemovableStorageMonitor.csに少し触れた。これについて、もうちょっと技術的な話を書いておこうと思う。

個人的に驚愕の事実

google://ピエール・リヴィエール ちょっと吃驚した。

SICP 1.24

(use srfi-19) (use srfi-27) (define (timed-prime-test n) (define (start-prime-test n start-time) (if (fast-prime? n 10000) (report-prime start-time))) (define (report-prime start-time) (display " *** ") (display (time-difference (current-t…

SICP 1.23

(use srfi-19) (define (timed-prime-test n) (define (start-prime-test n start-time) (if (prime? n) (report-prime start-time))) (define (report-prime start-time) (display " *** ") (display (time-difference (current-time) start-time))) (defin…

SICP 1.22

(use srfi-19) (define (timed-prime-test n) (define (start-prime-test n start-time) (if (prime? n) (report-prime start-time))) (define (report-prime start-time) (display " *** ") (display (time-difference (current-time) start-time))) (defin…