我正在学习函数式编程和lambda演算,但我很想知道 如果封闭期限也出现在教会的原创作品中,或者它更现代化 术语严格关注编程语言。
我记得在教会的工作中有以下术语:自由变量,封闭为..., 等等。
答案 0 :(得分:3)
这是一个更现代的术语,因为(现代FP中有很多东西),P。J. Landin(1964),The mechanical evaluation of expressions
我们也用a表示λ表达式的值 被称为“封闭”的信息包,包括 λ表达式与环境相关 它被评估了。
答案 1 :(得分:1)
考虑Scheme中的以下函数定义:
(define (adder a)
(lambda (x) (+ a x)))
纯lambda演算中不需要显式闭包的概念,因为变量替换会处理它。上面的代码片段可以翻译
λa λx . (a + x)
将此值应用于值z
时,它变为
λx . (z + x)
通过β-还原,其涉及取代。如果需要,可以通过a
调用此闭包。
(该示例使用函数参数,但这适用于任何变量绑定,因为在纯lambda演算中,所有变量绑定必须通过λ术语发生。)