SICP 2.38 研究递归和迭代模型
来源:互联网 发布:优雅的淘宝收件人名字 编辑:程序博客网 时间:2024/06/06 17:02
之前讨论的过程accumulate也称作fold_right(右折叠),因为它将序列的第一个元素组合到右边所有元素的结果上。相对的,也有个fold_left(左折叠),将左边的结果加到右边的元素上。
fold_right的scheme代码:
> (define (fold_left op initial sequence) (define (iter result rest) (if (null? rest) result (iter (op result (car rest)) (cdr rest))))
这是一个迭代的过程。
那么,下面的表达式的值是什么?
(fold_right / 1 (list 1 2 3))
(fold_left / 1(list 1 2 3))
(fold_right list nil (list 1 2 3))
(fold_left list nil (list 1 2 3))
fold_right是个线性递归过程,即最后一步便是回归操作的第一步,则第一个表达式的值是 1/(2/3)
fold_left 是个迭代(尾递归)过程,则第二个表达式的值是 (1/2)/3
同理:
第三个表达式的值是 ((1 2 3))
第四个表达式的值是 (((() 1) 2) 3)
0 0
- SICP 2.38 研究递归和迭代模型
- SICP 2.27 deep_reverse (迭代+递归)
- SICP 习题 (1.9) 解题总结:迭代计算过程和递归计算过程
- 递归和迭代
- 递归和迭代
- 递归和迭代
- 递归和迭代
- 递归和迭代
- 递归和迭代
- 递归和迭代
- 递归和迭代
- 递归和迭代
- 递归和迭代
- 递归和迭代
- 递归和迭代
- 递归和迭代
- 递归和迭代
- 递归和迭代
- Shader自学笔记 3.3.1 采样渐变纹理应用于BlinnPhong光照模型
- nohup
- JAVA 中 Redis与ehcache对比与使用
- 回溯法 求一个子集问题:装载问题、最大团问题
- shiro的简介
- SICP 2.38 研究递归和迭代模型
- SDOI
- ehcache详细解读
- android 加密算法与安全
- zookeeper算法研究
- [05]项目实战-PC 端固定布局(5)
- 仿微信小程序多任务栈效果
- lasticsearch 入门:Filebeat 安装及输出数据到 elasticsearch 或 logstash
- ListView滑动item卡片式推进动画效果