![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
SICP 课后习题
aa_niaofang
这个作者很懒,什么都没留下…
展开
-
2.1
;构建有理数(define (make-rat n d) (let ((g (gcd (abs n) (abs d)))) (if (< (* n d) 0) (cons (- 0 (abs (/ n g))) (abs (/ d g))) (cons (abs (/ n g)) (abs (/ d g))))));取得分子(define (numer x) (car x));取得分母(defin原创 2012-02-22 18:18:42 · 64 阅读 · 0 评论 -
3.55
;3.55(define (patial s) (cons-stream (stream-car s) (stream-map + (patial s) (stream-cdr s))))原创 2012-03-11 21:48:38 · 199 阅读 · 0 评论 -
3.56
;3.56(define s (cons-stream 1 (merge (scale-stream s 2) (merge (scale-stream s 3) (scale-stream s 5)))))原创 2012-03-11 21:51:03 · 209 阅读 · 0 评论 -
3.59
;3.59;a(define (integrate-series a) (mul-streams (stream-map (lambda (x) (/ 1 x)) integers) a));b(define cosine-series (cons-stream 1 (stream-map - (integrate-series sine-series))))(define sine-series原创 2012-03-11 22:03:38 · 82 阅读 · 0 评论 -
3.59
;3.59;a(define (integrate-series a) (mul-streams (stream-map (lambda (x) (/ 1 x)) integers) a));b(define cosine-s原创 2012-03-11 22:04:24 · 216 阅读 · 0 评论 -
3.60
;3.60(define (mul-series s1 s2) (cons-stream (* (stream-car s1) (stream-car s2)) (add-streams (mul-series s1 (stream-cdr s2)) (mul-原创 2012-03-11 22:47:36 · 222 阅读 · 0 评论 -
3.61
;3.61(define (1-/-s s) (cons-stream 1 (stream-map - (mul-series (stream-cdr s) (1-/-s s)))))原创 2012-03-11 22:56:51 · 218 阅读 · 0 评论 -
3.62
;3.62(define (div-series s d) (if (= 0 (stream-car d)) 'ERROR-DIVIDED-ZERO (mul-series s (1-/-s d))));正切函数的级数(define tanch-series (div-series sine-series cosine-series))原创 2012-03-11 23:00:23 · 323 阅读 · 0 评论 -
3.64
;3.64(define (stream-limit x tolerance) (let ((first-car (stream-car x)) (second-car (stream-car (stream-cdr x)))) (if (< (abs (- first-car second-car)) tolerance) second-c原创 2012-03-11 23:17:05 · 241 阅读 · 0 评论 -
3.67
;3.67(define (pairs s t) (cons-stream (list (stream-car s) (stream-car t)) (interleaves (interleaves (stream-map (lambda (x) (list (stream-car s) x)) (stream-cdr t)) (str原创 2012-03-12 22:20:56 · 229 阅读 · 0 评论 -
3.67
;3.67(define (pairs s t) (interleave (stream-map (lambda (x) (list (stream-car s) x) t)) (pairs (stream-cdr s) t)))这里给出 一个 高人的解释 豁然开朗Exercise 3.68. 答案原创 2012-03-12 00:04:55 · 259 阅读 · 0 评论 -
3.65
;3.65(define (ln2x n) (cons-stream (/ 1.0 n) (stream-map - (ln2x (+ 1 n))))) (define ln2-stream (scale-stream (patial (ln2x 1)) 4))(define (euler-transfor原创 2012-03-11 23:37:49 · 270 阅读 · 0 评论 -
3.54
;3.54(define (mul-streams a b) (cons-stream (* (stream-car a) (stream-car b)) (mul-streams (stream-cdr a) (stream-cdr b))))(def原创 2012-03-11 21:42:35 · 356 阅读 · 0 评论 -
3.6
;3.6(define (new-rand x) (define seed 0) (cond ((eq? x 'generate) (rand-update seed)) ((eq? x 'reset) (lambda (y) (set! seed y))) (else (display 'ERROR))))原创 2012-02-28 21:46:14 · 233 阅读 · 0 评论 -
2.2
;2.2;构建线段(define (make-segment start end) (cons start end));构建点(define (make-point x y) (cons x y))(define (x-point p) (car p))(define (y-point p) (cdr p));获得线段的首尾端原创 2012-02-22 18:24:32 · 228 阅读 · 0 评论 -
2.20
;2.20(define (check i) (if (= 0 (remainder i 2)) 0 1))(define (same-parity . w) (define flag (check (car w))) (define (iter i items) (if (= i (length w)) (my-reverse原创 2012-02-22 18:33:43 · 185 阅读 · 0 评论 -
2.17-2.18
;2.17(define (last-pair l) (cond ((null? l) 0) ((null? (cdr l)) l) (else (last-pair (cdr l))))) ;2.18;reverse items(define (my-reverse iterms) (define (iter原创 2012-02-22 18:28:05 · 187 阅读 · 0 评论 -
2.30-2.42
;2.30(define (square-tree tree) (cond ((null? tree) '()) ((not (pair? tree)) (* tree tree)) (else (cons (square-tree (car tree)) (square-tree (cdr tree)))))原创 2012-02-22 18:30:21 · 2461 阅读 · 0 评论 -
2.56
;2.56求导(define (deriv exp var) (cond ((number? exp) 0) ((variable? exp) (if (same-variable? exp var) 1 0)) ((sum? exp) (make-sum (deriv (addend exp) var)原创 2012-02-22 18:35:09 · 255 阅读 · 0 评论 -
2.1
;构建有理数(define (make-rat n d) (let ((g (gcd (abs n) (abs d)))) (if (< (* n d) 0) (cons (- 0 (abs (/ n g))) (abs (/ d g))) (cons (abs (/ n g)) (abs (/ d g))))));取得分子(de原创 2012-02-22 18:23:20 · 233 阅读 · 0 评论 -
2.6
;2.6;zero(define zero (lambda (f) (lambda (x) x)));add 1 operation(define (add-1 n) (lambda (f) (lambda (x) (f ((n f) x)))));one(define one (lambda (f) (lambda (x) (f x))));two原创 2012-02-22 18:25:33 · 161 阅读 · 0 评论 -
2.58
;2.56求导(define (deriv exp var) (cond ((number? exp) 0) ((variable? exp) (if (same-variable? exp var) 1 0)) ((sum? exp) (make-sum (deriv (addend exp) var)原创 2012-02-22 18:36:01 · 579 阅读 · 0 评论 -
2.59-2.66
;2.59 union-set;element-of-set?(define (element-of-set? x set) (cond ((null? set) #f) ((equal? x (car set)) #t) (else (element-of-set? x (cdr set)))))(define (union-set原创 2012-02-23 18:03:39 · 320 阅读 · 0 评论 -
2.64
原创 2012-02-24 08:53:54 · 241 阅读 · 0 评论 -
2.69
;2.69(define (generate-huffman-tree pairs) (successive-merge (make-leaf-set pairs)))(define (make-leaf-set pairs) (if (null? pairs) '() (let ((pair (car pairs))) (ad原创 2012-02-26 10:43:16 · 185 阅读 · 0 评论 -
3.1-3.4
;CHAPTER 3;3.1(define (make-accumulator x) (lambda (y) (begin (set! x (+ x y)) x)))(define A (make-accumulator 5));3.2(define (make-monitored f) (define (mm原创 2012-02-28 18:26:50 · 211 阅读 · 0 评论 -
3.5
;3.5(define (estimate-pi trails) (sqrt (/ 6 (monte-carlo trails experiment))))(define (random-in-range low high) (let ((range (- high low))) (+ low (random (+ 1 range)))));sicp 中为说明 r原创 2012-02-28 19:20:43 · 211 阅读 · 0 评论