Scheme解释器 - 为什么不能计算它?

时间:2013-02-04 01:58:26

标签: scheme

步骤:

(define (double fn) (lambda (x) (fn (fn x))))

为什么不能使用Scheme解释器计算以下内容:

((((((double double) double) double) double) 1+) 0)

1 个答案:

答案 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!