方案:此功能评估的是什么?

时间:2013-04-25 00:22:39

标签: lambda scheme evaluate

(define test
     (lambda()
       (let* ((x 1)
              (y 3)
              (z 5)
              (foo (lambda (n)
                     (let* ((x 3)
                            (y (+ x n))
                            (g (lambda(w) (+ (* x w) y))))
                       g))))
        ((foo 10) x))))

这会评估什么?

尝试:

致电(foo 10) - > (lambda(w) (+ x w) y),其中x = 3,y = 13

致电((lambda(w) (+ (* x w) y) x) - > (其中局部x为1) - >

1 个答案:

答案 0 :(得分:1)

(foo 10) => (lambda (w) (+ (* x w) y) ; where x = 3 and y = 13
         => (lambda (w) (+ (* 3 w) 13)

((foo 10) x) => (+ (* 3 w) 13) ; where w is 1
             => (+ (* 3 1) 13)
             => 16

See here

不知道你从哪里得到52。