(wat-aro)

生きてます

2015-10-03から1日間の記事一覧

SICP 問題1.8

ニュートン法で立方根を求める (define (cube-root-iter guess x) (if (good-enough? guess x) guess (cube-root-iter (cube-improve guess x) x))) (define (cube-improve guess x) (/ (+ (/ x (square guess)) (* 2 guess)) 3)) (define (good-enough? gue…

SICP 問題1.7

小さい数だと0.03くらいで計算が終わってしまう. 大きい数だと仮数部の比較がうまくいかず終わらない. 問題文にあるようにgood-enough?を改良する. (define (new-good-enough? guess x) (< (abs (- 1.0 (/ guess (improve guess x)))) 0.001)) これだとう…

SICP 問題1.7

(define (sqrt-iter guess x) (new-if (good-enough? guess x) guess (sqrt-iter (improve guess x) x))) を動かすと値が返ってこない.new-ifは通常の手続きであるので作用的順序の評価に従って引数がまず評価される. そのため(sqrt-iter (improve guess x)…

SICP 問題1.5

問題1.5 (define (p) (p)) (define (test x y) (if (= x 0) 0 y)) (test 0 (p)) を実行した時,作用的順序の評価を使う解釈系と正規順序の評価を使う解釈系それぞれでどういう仏舞を見るか説明せよ. 作用的順序を使う解釈系ではまず(test 0 (p))を (if (…

SICP 問題1.3

1.3 三つの数を引数としてとり,大きい二つの数の事情の話を返す手続きを書け 答えはa2 + b2, b2 + c2, c2 + a2の3通りがあるのでその分け方をもとに書く (define (sum-of-squares-large2 a b c) (cond ((or (<= a b c) (<= a c b)) (sum-of-squares b c)) …