(wat-aro)

生きてます

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

SICP 問題1.46

(define (iterative-improve enough? improve) (lambda (guess) (define (iter guess) (if (enough? guess) (improve guess) (iter (improve guess)))) (iter guess))) (define (sqrt x) (define (improve guess) (average guess (/ x guess))) (define (goo…

SICP 問題1.45

;;実験用に作った手続き ;; x^n k回平均緩和 (define (test x n k) (fixed-point-of-transform (lambda (y) (/ x (expt y (- n 1)))) (lambda (z) ((repeated average-damp k) z)) 1.0)) 実験の結果, 2 ≦ n < 4 の時 k=1 4 ≦ n < 8 の時 k=2 8 ≦ n < 16 の…

SICP 問題1.44

平滑化関数とn重平滑化関数 (define (smooth f) (let ((dx 0.0001)) (lambda (x) (/ (+ (f (- x dx)) (f x) (f (+ x dx))) 3)))) (define (n-fold-smooth f n) (lambda (x) ((repeated smooth n) x)))

SICP 問題1.43

関数fをn回作用を計算する手続きrepeated (define (repeated f n) (define (iter fn count) (if (= count n) fn (iter (compose f fn) (+ count 1)))) (iter f 1)) gosh> ((repeated inc 5) 0) 5

SICP 問題1.42

合成関数を実装する手続きcompose (define (compose f g) (lambda (x) (f (g x)))) gosh> ((compose square inc) 6) 49

SICP 問題1.41

(define (inc n) (+ 1 n)) (define (double f) (lambda (x) (f (f x)))) (define D double) (define DD (D D)) (((D (D D)) inc) 5) (((D DD) inc) 5) ((DD (DD inc)) 5) ((DD (D (D inc)))) ((D (D (D (D inc)))) 5) ((D (D (D (lambda (x) (+ 2 x))))) 5) …

SICP 問題1.40

(define (cubic a b c) (lambda (x) (+ (cube x) (* a (square x)) (* b x) c))) gosh> (newtons-method (cubic 3 3 1) 1) -0.9999755158323895