SICP

SICP 3.4.2

3.38 3.38a Peter => Paul => Mary 45 Peter => Mary => Paul 35 Paul => Peter => Mary 45 Paul => Mary => Peter 50 Mary => Peter => Paul 40 Mary => Paul => Peter 40 3.38b 以下のパターンが考えられる 並列実行により、いずれか1人の残高反映が失われ…

SICP 演習問題 2.2

2.17 #lang Racket (define (last-pair items) (if (null? (cdr items)) (car items) (last-pair (cdr items)))) 2.18 繰り返し (define (reverse items) (define (iter items result) (if (null? items) result (iter (cdr items) (cons (car items) result…

SICP 演習問題 2.1

2.1 #lang racket (define (make-rat n d) (let ((g (gcd n d))) (cond ((< (* n d) 0) (cons (* -1 (abs (/ n g))) (abs (/ d g)))) (else (cons (abs(/ n g)) (abs(/ d g))))))) (define (add-rat x y) (make-rat (+ (* (numer x) (denom y)) (* (numer y)…

SICP 演習問題 1.3

Exercise 1.29 ;h = (b-a)/n ;y_k=func(a+kh) ;sum = (y_0 + 4y_1 + 2y_2 + 4y_3 + ... + y_n) ; #lang Racket (define (simpthon a b func n) (* (/ (h a b n) 3) (sum-simpthon a b func 0 n))) (define (sum-simpthon a b func k n) (if (> k n) 0 (+ (co…

SICP 演習問題 1.2

Exercise 1.9 (define (+ a b) (if (= a 0) b (inc (+ (dec a) b)))) (+ 4 5) (inc (+ 3 5)) (inc (inc (+ 2 5))) (inc (inc (inc (+ 1 5)))) (inc (inc (inc (inc (+ 0 5))))) (inc (inc (inc (inc 5)))) (inc (inc (inc 6)) (inc (inc 7) (inc 8) 9 再帰 (…

SICP 演習問題 1.1

実はちょっと前からやっていたんだけど、長続きしないと恥ずかしいからアップするのを控えていた。 それなりに続いているし、このまま止まらないようにアップして自分を追い詰めることにした。 とりあえず1章から順番に。。。 Exercise 1.1 ​ 10 # -> 10 ​ (…