SICP
尘埃092
这个作者很懒,什么都没留下…
展开
-
SICP 习题答案1.1
1012836undefundef19#f416616原创 2013-02-04 00:00:03 · 747 阅读 · 0 评论 -
sicp 习题2.21
#lang planet neil/sicp;;(square-list (list 1 2 3 4)) => (1 4 9 16)(define a (list 1 2 3 4)); define one(define (square x) (* x x))(define (square-list items) (if (null? items) nil原创 2013-04-30 09:35:20 · 878 阅读 · 0 评论 -
sicp 习题2.22
Louis 的两种方法都不对,第一种方法list 的顺序反了,第二种方法最后构造出的是一个表头为空,后面是值的序对。 list 应该表头就是第一个元素。正确的迭代方法:(define (square-list items) (define (iter things answer) (if (null? things) (revers原创 2013-04-30 10:02:12 · 899 阅读 · 1 评论 -
sicp 习题2.24 && 2.25
它的盒子图形如下: (1 (2 (3 4))) ((2 (3 4)))[*]---------------> [*] | | | | v v (2 (3 4)) ((3 4)) 1 [*]--------------->原创 2013-05-01 11:22:28 · 938 阅读 · 0 评论 -
sicp 习题2.26
#lang planet neil/sicp(define x (list 1 2 3))(define y (list 4 5 6))run:Welcome to DrRacket, version 5.3.3 [3m].Language: planet neil/sicp; memory limit: 512 MB.> (append x y)(mcons 1 (mcon原创 2013-05-02 11:05:07 · 768 阅读 · 0 评论 -
sicp 习题2.27
(define x (list (list 1 2) (list 3 4)))上面的list 原来其实就是一个二叉树,但是初次学习,看了40分钟竟然也没有意识到。最后还是看了看题解,二叉树的遍历而已。 lisp的一个表几乎就可以表示许多数据结构,链表,二叉树,甚至图。 这和其他语言真的很不一样。下面是代码:#lang planet neil/sicp(define x (li原创 2013-05-03 19:33:51 · 1013 阅读 · 0 评论 -
sicp 习题2.28
(define x (list (list 1 2) (list 3 4)))(define (fringe lst) (cond ((null? lst) '() ) ((not (pair? lst)) (list lst)) (else (append (fringe (car lst)) (fringe (cadr lst))))))原创 2013-05-03 20:03:17 · 774 阅读 · 0 评论 -
sicp 习题2.29
(define (make-mobile left right) (list left right))(define mobile (make-mobile left right))(define (make-branch length structure) (list length structure))(define branch (make-branch length struc原创 2013-05-04 09:24:36 · 876 阅读 · 0 评论 -
sicp 习题2.31
(define (square-tree tree) (tree-map square tree))(define (tree-map square tree) (map (lambda (tree) (if (pair? tree) (tree-map square tree) (square tree)))原创 2013-05-08 21:05:13 · 743 阅读 · 0 评论 -
sicp 习题2.30
(define (square-tree lst) (cond ((null? lst) nil) ((not (pair? lst)) (square lst)) (else (cons (square-tree (car lst)) (square-tree (cdr lst))))))(define (square x) (* x x))原创 2013-05-07 20:51:04 · 627 阅读 · 0 评论 -
sicp 习题2.32
这题真的不会 参考了一下别人的:(define (subsets s) (if (null? s) (list null) (let ((rest (subsets (cdr s)))) (append rest (map (lambda(x) (cons (car s) x)) rest)))))和换零钱问题的思路是一样的,对于一个集合的所有子集的原创 2013-05-09 16:56:09 · 838 阅读 · 0 评论 -
sicp 习题 2.23
#lang planet neil/sicp(define lst (list 57 321 88))(define thing (lambda (x) (newline) (display x)))(define (for-each thing lst) (cond ((not (null? lst)) (thing (car lst))原创 2013-04-30 10:45:33 · 717 阅读 · 0 评论 -
sicp 习题2.7 && 2.8
题目:(define (add-interval x y) (make-interval (+ (lower-bound x) (lower-bound y)) (+ (upper-bound x) (upper-bound y))))和的最小值应该是两个区间下界之和,和的最大值应该是两个区间上界之和求出: 1.upper-bound 和原创 2013-04-27 12:03:16 · 1013 阅读 · 0 评论 -
sicp习题2.2
;; segment cons fuction(define (make-segment start-point end-point) (cons start-point end-point))(define (start-segment segment) (car segment))(define (end-segment segment) (cdr segment));; point原创 2013-03-23 17:10:34 · 585 阅读 · 0 评论 -
SICP 习题答案1.2
(/ (+ 5 4 (- 2 (- 3 (+ 6 (/ 4 5))))) (* 3 (- 6 2) (- 2 7)))原创 2013-02-05 00:18:58 · 585 阅读 · 0 评论 -
SICP 习题答案1.3
求三个数中较大的两个数之和(define (sum-of-two x y) (+ x y) )(define (largest-two-sum x y z) (cond ( (= (min x y z) x) (sum-of-two y z) ) ( (= (min x y z) y)原创 2013-02-06 21:05:46 · 484 阅读 · 0 评论 -
SICP 习题答案1.4
描述下列过程的行为(define (a-plus-abs-b a b) ( (if (> b 0) + - ) a b) ) 定义关联 a-plus-abs-b a b 然后如果 b > 0 则 a + b 否则 a-b即为求a+|b|原创 2013-02-06 21:17:42 · 518 阅读 · 0 评论 -
SICP 习题答案1.5
正则序: 完全展开后归约应用序: 先求值参数而后应用Using applicative-order evaluation, the evaluation of (test 0 (p)) never terminates, because(p) is infinitely expanded to itself: (test 0 (p)) (test 0 (p))原创 2013-02-06 22:10:28 · 798 阅读 · 0 评论 -
牛顿法求平方根
(define (sqrt-iter guess x) (if (good-enough? guess x) guess (sqrt-iter (improve guess x) x)))(define (improve guess x) (average guess ( / x guess )))(define (avera原创 2013-02-28 20:06:09 · 702 阅读 · 0 评论 -
牛顿法求三次方根
(define (cube x) (* x (* x x)))(define (square x) (* x x))(define (my-sqrt3 x) (sqrt3-iter 1.0 x))(define (sqrt3-iter guess x) (if (good-enough? guess x) guess (sqrt3-i原创 2013-02-28 21:15:53 · 4151 阅读 · 0 评论 -
SICP 习题答案1.11
(define (f n) (if (< n 3) n (fn-iter 0 1 2 n)))(define (fn-iter a b c count) (if (< count 3) c (fn-iter b c (+ (+ c (* 2 b)) (* 3 a)) (- count 1)))原创 2013-03-03 21:23:07 · 664 阅读 · 0 评论 -
sicp 习题2.3
#lang planet neil/sicp;; init the cons and other basic fuction(define (make-point x y) (cons x y))(define (x-point point) (car point))(define (y-point point) (cdr point))(define (make-segment start en原创 2013-04-03 16:02:21 · 777 阅读 · 0 评论 -
sicp 习题2.5
#lang planet neil/sicp(define (cons a b) (* (expt 2 a) (expt 3 b)))(define (car z) (if (= 0 (remainder z 2)) (+ 1 (car (/ z 2))) 0))(define (cdr z) (if (= 0 (remainder z 3))原创 2013-04-06 22:18:43 · 777 阅读 · 0 评论 -
sicp习题2.1
(define (gcd x y) (if (= y 0) x (gcd y (remainder x y))))(define (make-rat n d) (let ((g (gcd (abs n) (abs d))) (s (signum d))) (cons (/ n (* g s)) (/ d (* g s)))))(define原创 2013-03-22 17:13:23 · 534 阅读 · 0 评论 -
sicp 习题2.33
map 的原始定义(define (map p sequence) (if (null? sequence) '() (cons (p (car sequence)) (map p (cdr sequence)))))accumulate 的定义(define (accumulate op initial se原创 2013-05-14 20:09:11 · 724 阅读 · 0 评论