Hatena::Groupsicp

kdmsnrの日記 - 初心者なので最初から淡々と読むよ このページをアンテナに追加 RSSフィード

2008-01-10

[Emacs] とりあえず覚えるキーバインド2つ

11:32 |  [Emacs] とりあえず覚えるキーバインド2つ - kdmsnrの日記 - 初心者なので最初から淡々と読むよ を含むブックマーク はてなブックマーク -  [Emacs] とりあえず覚えるキーバインド2つ - kdmsnrの日記 - 初心者なので最初から淡々と読むよ  [Emacs] とりあえず覚えるキーバインド2つ - kdmsnrの日記 - 初心者なので最初から淡々と読むよ のブックマークコメント

C-c C-e                scheme-send-definition
C-x C-e                scheme-send-last-sexp

Exercise 1.3.

11:32 |  Exercise 1.3. - kdmsnrの日記 - 初心者なので最初から淡々と読むよ を含むブックマーク はてなブックマーク -  Exercise 1.3. - kdmsnrの日記 - 初心者なので最初から淡々と読むよ  Exercise 1.3. - kdmsnrの日記 - 初心者なので最初から淡々と読むよ のブックマークコメント

とりあえず関数作るよねえ

(define (f x y z)

  )

前者2つが最大とすると

(define (f x y z)
  (if (and (> x z) (> y z))
      ()
      ()
      )
  )

二乗した和を出せばよくて

(define (f x y z)
  (if (and (> x z) (> y z))
      (+ (* x x) (* y y))
      ()
      )
  )

それ以外は後者1つを一番前に持ってきて再処理

(define (f x y z)
  (if (and (> x z) (> y z))
      (+ (* x x) (* y y))
      (f z x y)
      )
  )

確認

(f 1 2 3) ; => 13
(f 3 2 1) ; => 13
(f 1 3 2) ; => 13
(f 3 1 2) ; => 13

それっぽいね?

Exercise 1.5.

11:58 |  Exercise 1.5. - kdmsnrの日記 - 初心者なので最初から淡々と読むよ を含むブックマーク はてなブックマーク -  Exercise 1.5. - kdmsnrの日記 - 初心者なので最初から淡々と読むよ  Exercise 1.5. - kdmsnrの日記 - 初心者なので最初から淡々と読むよ のブックマークコメント

つーか、

  • applicative-order evaluation
  • normal-order evaluation

って、何それ?

あー1.1.5に書いてあるのか(ちゃんと読め)。

  • 最初に評価するやつと、
  • 必要になるまで評価しないやつ

らしい。

なので、

applicative-order evaluationだと、

(define (p) (p))

を評価しようとして死亡(goshがーー)。

normal-order evaluationだと、評価されることがないから 0 で終了。

1.1.7

14:53 |  1.1.7 - kdmsnrの日記 - 初心者なので最初から淡々と読むよ を含むブックマーク はてなブックマーク -  1.1.7 - kdmsnrの日記 - 初心者なので最初から淡々と読むよ  1.1.7 - kdmsnrの日記 - 初心者なので最初から淡々と読むよ のブックマークコメント

あー英語を読むスピードが遅いよ……。

数学関数コンピュータのプロシージャの違いは、(what is) と (how to)の違い。

平方根の近似値を見つけるにはニュートン法。

xの平方根は、近似値yがあったとき、

((x/y) + y ) / 2

でいける。

なので、2の平方根は、近似値1があったとき、

(2/1 + 1) / 2 # 次の近似値 1.5
↓
(2/1.5 + 1.5) / 2 # 次の近似値 1.467
↓
(2/1.467 +1.467) / 2 # 次の近似値1.4142

でいける。

これを十分な精度になるまでずっと続ける。

Exercise 1.6.

14:53 |  Exercise 1.6. - kdmsnrの日記 - 初心者なので最初から淡々と読むよ を含むブックマーク はてなブックマーク -  Exercise 1.6. - kdmsnrの日記 - 初心者なので最初から淡々と読むよ  Exercise 1.6. - kdmsnrの日記 - 初心者なので最初から淡々と読むよ のブックマークコメント

ifがスペシャルフォームなのは、真偽の両方の値が同時に評価されちゃうから、かな(再帰の場合は特に)。

Exercise 1.8.

14:53 |  Exercise 1.8. - kdmsnrの日記 - 初心者なので最初から淡々と読むよ を含むブックマーク はてなブックマーク -  Exercise 1.8. - kdmsnrの日記 - 初心者なので最初から淡々と読むよ  Exercise 1.8. - kdmsnrの日記 - 初心者なので最初から淡々と読むよ のブックマークコメント

画像がよく見えないんだけど、

(x/y^2 + 2y) / 3

でよろしいか?

(define (improve guess x)
  (/ (+ (x (square guess)) (* 2 guess)) 3))

あとは同じ。