0
有关步骤:方案替代模式
(define (double fn) (lambda (x) (fn (fn x))))
当调用:
(((double (double double)) 1+) 0)
这是正确的:
(double (lambda (x) (double (double x) 1+) 0))
((lambda (x) (double^4 x) 1+) 0)
((double^4 1+) 0)
(16+ 0)
16
同样,当调用:
(((((double double) double) double) 1+) 0)
这是正确的:
(((double double (double double) double) 1+) 0)
(double (double (lambda (x) (double (double x) 1+) 0)))
(double (lambda (x) (double^4 1+) 0))
((lambda (x) (double^16 x) 1+) 0)
((double^16 1+) 0)
(256+ 0)
256
什么是1 +,16 +,256 +,double^4和double^16? – leppie 2013-02-08 20:02:53
[doubleling function]的可能重复(http://stackoverflow.com/questions/14742866/doubling-function) – dyoo 2013-02-09 02:20:27