踩着lambda

时间:2016-11-21 01:34:21

标签: lambda scheme racket

(define (f y) (lambda (y) (lambda (y) (+ y 5))))
<(>(((3)4)5)`

我想采取这个步骤。

1 个答案:

答案 0 :(得分:0)

评估:

(((f 3) 4) 5)

其中f =

(define (f y) (lambda (y) (lambda (y) (+ y 5))))

(f 3)

开始
(f 3) ;; yields ...

(lambda (y)
  (lambda (y)
    (+ y 5)))

接下来,根据((f 3) 4),我们将(f 3)的结果应用于4

((lambda (y)
   (lambda (y)
     (+ y 5))) 4) ;; yields

((lambda (y)
       (lambda (y)
         (+ y 5))) 4)

接下来,根据(((f 3) 4) 5),我们将((f 3) 4)的结果应用于5

((lambda (y)
   (+ y 5)) 5) ;; yields ...

((lambda (y)
   (+ y 5 5)) 5)

所以最终答案是(+ 5 5),即10