博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SICP之第一章_1.6
阅读量:4970 次
发布时间:2019-06-12

本文共 572 字,大约阅读时间需要 1 分钟。

(define (new-if predicate then-clause else-clause)    (cond (predicate then-clause)             (else else-clause)))(define (sqrt-iter guess x)    (new-if (good-enough? guess x)                guess                (sqrt-iter (improve guess x)                x)))

当用new-if替代if或cond时,它忽略了自定义函数和if,cond的区别:

if,cond:先检测是否满足条件,如满足条件,执行动作(clause)

new-if:先将参数计算出来并代入函数,再判断是否满足条件,以及执行何种动作(clause)

总而言之,以此书至此章的技术来看,在递归函数中是不可以使用自定义函数的,否则将陷入死循环!

 

以个人观点而言,遇到递归的地方三思为妙,尤其是对于Scheme这种没有固定结构的递归,更是要倍加小心,才能尽量避免犯低级错误。

转载于:https://www.cnblogs.com/codingpenguin/archive/2012/10/10/2718842.html

你可能感兴趣的文章
nginx启动、关闭命令、重启nginx报错open() "/var/run/nginx/nginx.pid" failed
查看>>
BZOJ 3097 Hash Killer I
查看>>
UINavigationController的视图层理关系
查看>>
html阴影效果怎么做,css 内阴影怎么做
查看>>
宏观经济
查看>>
综合练习:词频统计
查看>>
BZOJ1026: [SCOI2009]windy数
查看>>
样板操作数
查看>>
64位UBUNTU下安装adobe reader后无法启动
查看>>
组件:slot插槽
查看>>
Nginx配置文件nginx.conf中文详解(转)
查看>>
POJ 1308 Is It A Tree?(并查集)
查看>>
N进制到M进制的转换问题
查看>>
利用sed把一行的文本文件改成每句一行
查看>>
Android应用开发:核心技术解析与最佳实践pdf
查看>>
python——爬虫
查看>>
孤荷凌寒自学python第五十八天成功使用python来连接上远端MongoDb数据库
查看>>
求一个字符串中最长回文子串的长度(承接上一个题目)
查看>>
简单权限管理系统原理浅析
查看>>
springIOC第一个课堂案例的实现
查看>>