加载中
【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练习】22 练习1.28

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

2015/09/08 21:50
2
【SICP练习】18 练习1.24

 练习1.24 我们先将书中已给出的代码写入Edwin中。 (define (fermat-test n) (define (try-it a) (= (expmod a n n) a)) (try-it (+ 1 (random (- n 1))))) (define (fast-prime? n tim...

【SICP练习】2 练习1.6

 练习1.6 这道题通过由一个新版本的if来引出,主要讨论的还是应用序和正则序的问题。我看到“将if提供为一种特殊形式”时还满头雾水,并不太清楚什么特殊形式。当再返回看if的语法时才发...

【SICP练习】55 练习2.23

 练习2.23 这道题就有小小的难度了。(define (for-each f lst) (cond ((not (null? lst)) (f (car lst)) (for-each f (cdr lst))))) 如果用上前面经常用到的begin和if,这里还有另一种f...

2015/09/08 21:51
1
【SICP练习】16 练习1.22

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

【SICP练习】58 练习2.28

 练习2.28 这道题是要我们找出树的所有树叶,参考第73页下面的count-leaves,当遍历这个树的时候也会有这三种情况:元素为空,元素不成对,以及元素成对。根据这个关系可以写出fringe如下...

2015/09/08 21:50
3
【SICP练习】60 练习2.30

 练习2.30 如果这道题感觉有点难度的话,可以回过头来看看75页定义的两个scale-tree。我的定义如下: (define (square-tree tree) (cond ((null? tree) ‘()) ((not (pair? tree)) (squa...

2015/09/08 21:47
1
【SICP练习】23 练习1.29

 练习1.29 这道题的数学气息比较浓厚。像变量h和函数y在书中已经有了定义,并且n是偶数。另外通过观察我们发现当k等于0或者n时,y的系数为1;当k为偶数时,y的系数为2;当k为奇数时(在函...

2015/09/08 21:46
9
【SICP练习】17 练习1.23

 练习1.23 首先我们按照题目要求来写出相应的next函数,然后再修改find-divisor函数。 (define (next x) (if(= x 2) 3 (+ n 2))) (define(find-divisor ntest-divisor) (cond((> (squa...

【SICP练习】25 练习1.31

 练习1.31 题目中已经说的很清楚了,product用来返回在给定范围中各点的某个函数值的乘积。我们惊奇的发现这和前面的sum有着很大的相似,无非是将加法换成了乘法: (define (product ter...

2015/09/08 21:47
4
【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
3
【SICP练习】10 练习1.16

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

【SICP练习】12 练习1.18

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

【SICP练习】57 练习2.27

 练习2.27 又是修改程序的题目,要求我们写出的deep-reverse函数要将表中的元素也反转过来,这其中应该要用到递归来实现吧。 (define (deep-reverse tree) (cond ((null? tree) ‘()) (...

2015/09/08 21:46
2
【SICP练习】1 练习1.1-练习1.5

 练习1.1 这道题主要是关于简单的数字运算,我们看完之后可以在MIT-Scheme中进行验算。如果环境不熟悉,可以参见【Scheme归纳】的第一篇博文。如果发现在MIT-Scheme等环境上的运算结果和...

【SICP练习】21 练习1.27

 练习1.27 这道题的场景是在注释47中,博主更关心的问题是:(第三行)撞上能欺骗费马检查的值的概率有多少,居然会比什么宇宙射线造成计算机出差。后者个人感觉是永远不会发生的,前者倒...

【SICP练习】146 练习4.2

练习4-2 原文 Exercise 4.2. Louis Reasoner plans to reorder the cond clauses in eval so that the clause for procedure applications appears before the clause for assignments. He a...

【SICP练习】13 练习1.19

 练习1.19 题目中说道斐波那契数中将变换T的n次方应用于对偶(1,0)而产生出来,而现在将T看作T(pq)中p=0和q=1的特俗情况。因此对于对偶(a,b)来说,a—bq+a(p+q),b—bp+aq。而对于T...

【SICP练习】27 练习1.33

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

没有更多内容

加载失败,请刷新页面

返回顶部
顶部