我必须从以下代码中删除每个lambda
,并且我不能在全局空间中使用其他函数。 (((f 1) 2) 3)
应生成6
。
(define f (lambda (x)
(lambda (y)
(lambda (z)
(+ x y z)))))
我尝试在define
中使用define
,但问题在于(((f 1) 2) 3)
必须提供6
。如果在函数外部给出,我不知道如何使用2
和3
内部函数f
?如果lambda
在“引擎盖下”,那就没关系了,只是不可见。
答案 0 :(得分:1)
尝试
(define (f x)
(define (g y)
(define (h z)
(+ x y z))
h)
g)
或
(define (((f x) y) z)
(+ x y z))