我是Scheme的初学者。我在麻省理工学院的考试1中找到了这个问题,用于SICP讲座。
-
的价值和类型是什么((lambda (a) (lambda (b) (+ (sqrt a) (sqrt b)))) 5)
我很难理解这个功能是如何工作的。我对参数b
感到困惑。只有5
作为参数传递给外部lambda函数,那么b
对内部lambda函数的值是什么?
我尝试在mit-scheme中运行此函数,但每次运行时结果值都会递增。
答案 0 :(得分:2)
你是正确的,只有外部的lambda形式被应用于参数5.然后它返回它的身体,a
替换为5,所以它会返回
(lambda (b) (+ (sqrt 5) (sqrt b)))
这本身就是一个功能。这可以在以后应用于另一个参数,以产生实际的数值。