在 SICP 中,(ex 2.6)以下功能被描述为“无数字生活”的方式。我正在努力理解这一点。作为起点,如何调用这些函数?我真的可以以某种方式应用它们,输出为 1 吗?(或任何其他数字?)
(define zero (lambda (f) (lambda (x) x)))
(define (add-1 n)
(lambda (f) (lambda (x) (f ((n f) x)))))
我最初的尝试没有成功:
Welcome to DrScheme, version 4.1.5 [3m].
Language: Simply Scheme; memory limit: 128 megabytes.
> (add-1 (zero))
. . procedure zero: expects 1 argument, given 0
> (add-1 zero)
#<procedure>
> (add-1 1)
#<procedure>
> ((add-1 1))
. . #<procedure>: expects 1 argument, given 0
>