如何测试lambda函数?

如何测试lambda函数?,lambda,scheme,Lambda,Scheme,假设我们有一种不支持数字或布尔值的编程语言:lambda是它提供的唯一值 教堂数字使用lambda创建数字表示。这一思想与自然数的函数表示密切相关,即有一个表示“零”的自然数和一个返回给定自然数后继数的函数“succ” (define zero (lambda (f) (lambda (x) x))) (define (add-1 n) (lambda (f) (lambda (x) (f ((n f) x))))) 如果我有另一个lambda (define pluss4 (lambd

假设我们有一种不支持数字或布尔值的编程语言:lambda是它提供的唯一值

教堂数字使用lambda创建数字表示。这一思想与自然数的函数表示密切相关,即有一个表示“零”的自然数和一个返回给定自然数后继数的函数“succ”

(define zero (lambda (f) (lambda (x) x)))

(define (add-1 n)
  (lambda (f) (lambda (x) (f ((n f) x)))))
如果我有另一个
lambda

(define pluss4 (lambda(x) (+ x 4))
我可以像这样测试:
(plus40)
,我发现答案是
4


如何测试教堂数字并查看结果?

要将教堂数字转换为整数,只需按如下方式应用:

(定义(添加n)(+n1));在SICP中,它被称为1+
((零加1)0);==>0
(((添加-1(添加-1零))添加1)0;=>2.
您可以将其设置为一个过程:

(定义(church->intx)
((x add1)0))
(教堂->整数零);==>0
(church->int(add-1(add-1零));=>2.