这两个术语曾对我的学习构成挑战,在此我斗胆提出另一种翻译方案,力求符合工程直觉、易于理解,虽然无法改变领域内固定术语的事实,对教学而言或许仍有一定参考价值,欢迎各位道友讨论!
在此,我将“closure”译为“捕获体”、“currying”译为“链序化”,以下是使用“新款翻译”写的一段话:
捕获体是指内部函数与其所捕获的自由变量共同构成的闭合实体。它赋予了内部函数超越生命周期的能力:即使外部函数执行完毕,内部函数依然能访问并保留那些被捕获的变量。
链序化将多参数函数转换为嵌套的单参数函数链。每当链中的函数被调用并接收参数,它便会返回一个捕获体,捕获并记忆当前参数。随着调用推进,捕获体不断累积上下文,直至参数集齐触发最终计算。
链序化是对函数形态的转换,捕获体是实现这种转换的底层能力。没有捕获体提供的环境持久化机制,链序化将因“失忆”而无法分步执行;反过来,链序化也展现了捕获体的环境记忆能力,使函数能够逐步收集参数,并将计算推迟到最终阶段执行。