Function 方案嵌套lambda函数
我是这个计划的初学者。我在麻省理工学院SICP课程的第一次考试中发现了这个问题 的值和类型是什么–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,因此它
((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。