(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) - >
答案 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
不知道你从哪里得到52。