0

我必须lambda从以下代码中删除每个,并且我不能在全局空间中使用其他函数。(((f 1) 2) 3)应该产生6.

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

我曾尝试使用definein define,但问题在于(((f 1) 2) 3)必须给予6. 我看不出如何使用2and 3inside 函数f,如果它们是在函数之外给出的?如果lambdas 在“引擎盖下”也没关系,它们只是必须不可见。

4

1 回答 1

1

尝试

(define (f x)
  (define (g y)
    (define (h z)
      (+ x y z))
    h)
  g)

或者

(define (((f x) y) z)
  (+ x y z))
于 2013-10-31T14:34:17.843 回答