计划嵌套的 lambda 函数

Scheme nested lambda function

我是Scheme的初学者。我在 MIT 考试 1 的 SICP 讲座中找到了这个问题。

的值和类型是什么
((lambda (a) (lambda (b) (+ (sqrt a) (sqrt b)))) 5)

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

我在 mit-scheme 中尝试了 运行ning 这个函数,但是每次 运行 时结果值都会递增。

你是对的,只有外部 lambda 形式应用于参数 5。然后它 return 将它的主体 a 替换为 5,所以它会 return

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

这本身就是一个函数。稍后可以将其应用于另一个参数,以生成实际数值。