步骤:
(define (double fn) (lambda (x) (fn (fn x))))
为什么不能使用Scheme解释器计算以下内容:
((((((double double) double) double) double) 1+) 0)
答案 0 :(得分:3)
确定可以计算,只是计算的数量在被调用的每个double
呈指数级增长...如果你等了很长很长时间时间你最终会得到你的答案(多长时间?几个小时或几个世纪之间的任何事情)。
(((double double) 1+) 0)
=> 4
((((double double) double) 1+) 0)
=> 16
(((((double double) double) double) 1+) 0)
=> 65536
((((((double double) double) double) double) 1+) 0)
=> ... ; takes too long to compute!