SICP 练习1.9

原创 2016年06月01日 00:24:08

add 函数是递归的

add1函数是迭代的

(define (inc x) (+ x 1))
(define (dec x) (- x 1))

(define (add a b)
  (if (= a 0)
    b
    (inc (add (dec a) b))))

(define (add1 a b)
  (if (= a 0)
    b
    (add1 (dec a) (inc b))))
版权声明:本文为博主原创文章,未经博主允许不得转载。

SICP 习题 (1.9) 解题总结:迭代计算过程和递归计算过程

SICP 习题 1.9 开始针对“迭代计算过程”和“递归计算过程”,有关迭代计算过程和递归计算过程的内容在书中的1.2.1节有详细讨论,要完成习题1.9,必须完全吃透1.2.1节的内容,不然的话,即使...

SICP 习题 (2.1.4)拓展练习——初论

我只讨论练习2.15和2.16,前面的较简单。 2.15和2.16不能孤立的看,首先我们想想这个所谓区间运算的实质是什么? 没错,集合 我们重新定义加法: \qquad对于集合AA,BB \...

【SICP练习】23 练习1.29

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

【SICP练习】90 练习2.63

练习2.63这两段代码的区别在于第二段用了迭代,相信可以大大减少计算时间。那么还是先来测试第一小题。需要的代码大家先敲进去。然后来定义图2-16中的三棵树了。(define tree-1 (make-...
  • NoMasp
  • NoMasp
  • 2015年03月05日 10:45
  • 1344

【SICP练习】59 练习2.29

练习2.29 这种题,还有之前的那个rectangle的题目,对于变量、函数等的命名简直要让人疯掉。先来写出题目中的left-branch和right-branch吧。 (define (left...
  • NoMasp
  • NoMasp
  • 2015年02月22日 13:52
  • 1131

【SICP练习】116 练习3.42

练习3-42原文Exercise 3.42. Ben Bitdiddle suggests that it’s a waste of time to create a new serialized ...
  • NoMasp
  • NoMasp
  • 2015年03月26日 19:43
  • 2405

【SICP练习】105 练习3.5-3.6

练习3-5原文Exercise 3.5. Monte Carlo integration is a method of estimating definite integrals by means ...
  • NoMasp
  • NoMasp
  • 2015年03月11日 18:08
  • 2561

【SICP练习】98 练习2.73

练习2.73a小题,这是由于Scheme对数字、变量的直接规定,前者会被当作数值类型,后者则会被当作符号类型。因此没必要将这两个谓词添加到数据导向分派中了。如果给数值类型或者符号类型加上一个标志,在g...
  • NoMasp
  • NoMasp
  • 2015年03月06日 12:16
  • 2162

【SICP练习】108 练习3.21

练习3-21原文Exercise 3.21. Ben Bitdiddle decides to test the queue implementation described above. He t...
  • NoMasp
  • NoMasp
  • 2015年03月25日 11:09
  • 1124

【SICP练习】110 练习3.23

练习3-23原文Exercise 3.23. A deque (“double-ended queue”) is a sequence in which items can be inserted ...
  • NoMasp
  • NoMasp
  • 2015年03月26日 11:57
  • 1709
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SICP 练习1.9
举报原因:
原因补充:

(最多只允许输入30个字)