将Lambda表达式转换为Scheme

将Lambda表达式转换为Scheme,scheme,lambda-calculus,Scheme,Lambda Calculus,我有这个λλ表达式:λx.(λy.(λz.x(yz))) 我正试图用它来写一个计划表达式 我这样做: (define (f x)(lambda(y z) (f (y z)))) 是这样吗?如果没有,我做错了什么?我不太确定lambda符号,但我认为您需要这个: (define (f x) (lambda (y) (lambda (z) (x (y z))))) 您可以这样使用它: (((f sqrt) 1+) 3) 2.0 我在使用Win7和DrRacket:我把(定义(fx)(lambd

我有这个λλ表达式:λx.(λy.(λz.x(yz)))

我正试图用它来写一个计划表达式

我这样做:

(define (f x)(lambda(y z) (f (y z))))

是这样吗?如果没有,我做错了什么?

我不太确定lambda符号,但我认为您需要这个:

(define (f x) (lambda (y) (lambda (z) (x (y z)))))
您可以这样使用它:

(((f sqrt) 1+) 3)
2.0

我在使用Win7和DrRacket:我把(定义(fx)(lambda(y)(lambda(z)(x(yz)'))))放进去,按回车键,一切正常。但当我尝试按照您的建议使用它时,我得到了:“在定义之前引用标识符:1+”您能解释一下原因吗?@endif:
1+
在Racket中被称为
add1
。Racket中的1+没有绑定。尝试使用add1。