按照普通的想法来说,得出的结果应该是8+5,但是最后得到了16+5
是这个样子的,(double double)相当于(four) (double(double double))相当于(four four)相当于把four应用4遍,于是就是16次了。
参考链接:
http://blog.youkuaiyun.com/keyboardOTA/article/details/23551511
(define (double f)
(lambda (x) (f (f x)))
)
(define (inc n)
(+ n 1))
(newline)
(display ((double inc) 1))
(newline)
(display (((double (double double)) inc) 5))
本文通过具体的代码示例,解析了在Scheme语言中如何使用高阶函数实现数值的加倍操作,并进一步展示了复合高阶函数的应用过程。通过递归定义的方式,演示了如何将一个简单的增加操作扩展到更复杂的场景。
139

被折叠的 条评论
为什么被折叠?



