Function 方案嵌套lambda函数

Function 方案嵌套lambda函数,function,lambda,nested,scheme,sicp,Function,Lambda,Nested,Scheme,Sicp,我是这个计划的初学者。我在麻省理工学院SICP课程的第一次考试中发现了这个问题 的值和类型是什么– ((lambda (a) (lambda (b) (+ (sqrt a) (sqrt b)))) 5) 我很难理解这个函数是如何工作的。我真的对参数b感到困惑。只有5作为参数传递给外部lambda函数,那么b为内部lambda函数取什么值 我尝试在mit scheme中运行此函数,但每次运行时,结果值都会增加 只有外部lambda形式应用于参数5是正确的。然后它返回它的主体,并用5替换a,因此它

我是这个计划的初学者。我在麻省理工学院SICP课程的第一次考试中发现了这个问题

的值和类型是什么–

((lambda (a) (lambda (b) (+ (sqrt a) (sqrt b)))) 5)
我很难理解这个函数是如何工作的。我真的对参数
b
感到困惑。只有
5
作为参数传递给外部lambda函数,那么
b
为内部lambda函数取什么值


我尝试在mit scheme中运行此函数,但每次运行时,结果值都会增加

只有外部lambda形式应用于参数5是正确的。然后它返回它的主体,并用5替换
a
,因此它将返回

(lambda (b) (+ (sqrt 5) (sqrt b)))

这本身就是一个函数。这可以稍后应用到另一个参数,以产生实际的数值。

当我在mit方案中运行代码时,我得到的结果如下
value 13:#[composite procedure 13]
。这里的值13是多少?当我再次运行代码时,该值将递增为
值14:#[复合过程14]
。为什么会发生这种情况?听起来这些可能只是为每个过程生成的唯一ID。