将Lambda表达式转换为Scheme
我有这个λλ表达式:λx.(λy.(λz.x(yz))) 我正试图用它来写一个计划表达式 我这样做:将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
(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。