加载中
【SICP练习】46 练习2.5

 练习2.5 这道题的意思是有一个新的cons,其接受两个参数a、b,并且返回(2^a)*(3^b)。这个比较容易实现了。 (define (cons a b) (* (expt 2 a) (expt 3 b))) (cons 2 2) ;Value: 36 根据...

2015/09/08 21:48
0
【SICP练习】56 练习2.24-2.26

 练习2.24 其打印结果为:(1 (2 (3 4))) 练习2.25 (define x ‘(1 3 (5 7) 9)) (cadr (caddr x)) ;Value: 7 (define y ‘((7))) (caar y) ;Value: 7 (define z ‘(1 (2 (3 (4 (5 (6 7))...

2015/09/08 21:48
2
【SICP练习】6 练习1.10

 我们先将Ackermann函数写入Edwin中,当然了,再获取结果之前应该先自己用笔算算。结果如下: (A 1 10) ;Value: 1024 (A 2 4) ;Value: 65536 (A 3 3) ;Value: 65536 其中65536也就是16的...

2015/09/08 21:46
32
【SICP练习】148 练习4.4

练习4-4 原文 Exercise 4.4. Recall the definitions of the special forms and and or from chapter 1: ● and: The expressions are evaluated from left to right. If any expression eva...

【SICP练习】149 练习4.5

练习4-5 原文 Exercise 4.5. Scheme allows an additional syntax for cond clauses, ( => ). If evaluates to a true value, then is evaluated. Its value must be a procedure of one arg...

【SICP练习】26 练习1.32

 练习1.32 因为递归比迭代要更容易实现,因此我先考虑的递归。先将sum和product都列出来。 (define (sum term a next b) (if(> a b) 0 (+(term a) (sum term (next a) next b)))) (defin...

【SICP练习】10 练习1.16

 练习1.16 这道题题目特别长,说的无非就是要用一个不变量记录中间结果,然后写出对数步数内的通过迭代来计算幂的函数,当然了还要用到题目中括号内的那个关系。下面就直接上代码了: (d...

【SICP练习】15 练习1.21

 练习 1.21 这道题几乎没有难度,除非在把书中函数写入到Edwin中时输入错误。 (smallest-divisor 199) ;Value: 199 (smallest-divisor 1999) ;Value: 1999 (smallest-divisor 19999) ;Va...

2015/09/08 21:51
2
【SICP练习】12 练习1.18

 练习1.8 和前两题一样,依旧是只能用对数步数。而且这个迭代过程要基于加、加倍和折半运算。这一个习题要用到前面的函数,因此最好的做法是,每次都将写好的代码保存起来。 (load“Tes...

【SICP练习】3 练习1.7

 练习1.7 这道题回应了第15页所说的good-enough?并不是一个很好的检测方法。 我们首先来按照题目要求用4组最大或最小的数来检测原文中的good-enough? (sqrt-iter 1.0 0.00000081) 0.000...

【C++注意事项】7 Library vector Type

List Initializer or Element Count? In a few cases, what initialization means depends upon whether we use curly braces or parentheses to pass the initializer(s). For example, whe...

【SICP练习】27 练习1.33

 练习1.33 题目第二行描述,只组合起由给定范围得到的项里的那些满足特定条件的项,因此我们需要在这一版本的accumulate中添加一个need-filter?,这个新的谓词可以用来传递下面就要用到的...

【SICP练习】16 练习1.22

 练习1.22 这道题中需要判断素数的部分书中都已经列出来了,但要求是要找出多个素数,因此我们要有一个能够不断求素数的函数。在C等语言中我们可以通过一个for循环来轻易地求出来,在Sch...

【SICP练习】22 练习1.28

 练习1.28 这道题主要分为三个部分: 1、非平凡平方根,并添加到expmod函数中 2、类似于fermat-test的过程 3、通过已知的素数和非素数来检验 下面我们首先来写出能够在遇到非平凡平方根的...

2015/09/08 21:50
17
【SICP练习】8 练习1.12

 这道练习的翻译有误。原文是:Write a procedure that computes elements of Pascal’s triangle bymeans of a recursive process.正确的翻译应该是计算帕斯卡三角形的各个元素。 y : ...

【SICP练习】9 练习1.15

 (define(cube x) (* x x x)) (define(p x) (- (* 3 x) (* 4 (cube x)))) (define(sine angle) (if (not (> (abs angle) 0.1)) angle (p (sine (/ angle 3.0))))) 大家自己将题目中的代码...

2015/09/08 21:52
10
【C++注意事项】6 Library string Type

Processing Every Character? Use Range-Based for If we want to do something to every character in a string, by far the best approach is to use a statement introduced by the new s...

【SICP练习】39 练习1.44

 练习1.44 相信如果大家认真做了前面的几道习题,这一题就比较简单了。smooth过程几乎可以直接写出: (define smooth (lambda (f) (lambda (x) (/ (+ (f (- x dx)) (f x) (f (+ x dx))) ...

2015/09/08 21:45
1
【SICP练习】11 练习1.17

 练习1.17 这道题中有2个需要我们自己先写出来的函数double和halve,当然了,这都非常容易实现: (define(double x) (+ x x)) (define(halve x) (/ x 2)) 题目中要求我们设计一个类似于f...

2015/09/08 21:48
31
【SICP练习】35 练习1.40

 练习1.40 首先根据公式x^3+ax^2+bx+c写出相应的cubic过程,它的返回值是一个接受参数x的过程: (define (cubic a b c) (lambda (x) (+ (cube x) (* a (square x)) (* b x) c))) (newto...

2015/09/08 21:45
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部