【发布时间】:2021-06-06 18:45:31
【问题描述】:
在这个Y-combinator的解释中(https://mvanier.livejournal.com/2897.html),
(define almost-factorial
(lambda (f)
(lambda (n)
(if (= n 0)
1
(* n (f (- n 1)))))))
(define factorialA (almost-factorial factorialA))
它表示阶乘 A 的定义将进入标准方案中的无限循环,但是执行它会给出一个错误,说阶乘 A 未定义。
我认为这是意料之中的,因为当我们定义(如果不是使用 lambda)时,我们正在评估最终将计算参数的定义,其中一个是尚未定义的相同函数。
这是正确的,那么我们该如何解释上面的文章呢? 谢谢
【问题讨论】:
标签: scope scheme lisp sicp y-combinator