对于程序:
(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