摘要:
练习1.41对于一个接受单个参数x的函数f来说,要将它应用多一次的办法是执行以下表达式:(f (f a))由此可得相应的double函数,它接受一个函数f,并且返回一个能将f应用两次的过程:(define (double f)(lambda (x)(f (f x))))(让f作为一个过程)(((... 阅读全文
摘要:
练习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)))(newtons-method (cubic ... 阅读全文
摘要:
练习1.39没想到最后一道题如此简单,n和d的过程可以如下定义:(define (n i)(if (= i 1)i(- (* i i))))(define (d i)(- (* 2 i) 1))这里我们就不再重复写成块结构了。(define (tan-cf x k)(cont-frac n d ... 阅读全文
摘要:
练习1.38我最喜欢做数学上的观察题了,这里也有一个Di,其依次为1,2,1,1,4,1,1,6,1,1,8……我最先看到的是除了一开始的2个之外,每三个数字的规律是前面是两个1,后面是个递增的偶数。于是我们便可轻而易举的写出这个函数了。(define (d i)(if (= (remainde... 阅读全文
摘要:
练习1.37根据题目中的意思通过观察得到k项有项连分式的一种表达方式:f=N1/(D1+(N2/(…+Nk/Dk)))这个式子可以不断展开,但如果我们把每一个”+”后面的式子记作T(i)。不对,我们应该将每一个N/D记作T(i),因为这组式起始于N/D,且中止与N/D。计N1/D1为T(1),N... 阅读全文
摘要:
练习1.36这道题要求我们根据书上的newline和display来完成一个新版本的fixed-point。根据题目内容我们分为如下步骤:1、写出能够打印出计算中产生的近似值序列的函数。2、将第一步中的函数写入fixed-point中。3、根据题中的映射关系写出对应函数。4、根据下一节的内容写出... 阅读全文
摘要:
练习1.35依旧是每一小节中比较简单的第一题,计算黄金分割率的过程如下:(define get-golden-ratio(fixed-point (lambda (x) (+ 1 (/ 1 x))) 1.0))虽然比较简单,但我们还是测试一下:get-golden-ratio;Value: 1.... 阅读全文