我问了一个关于Currying和关闭的问题.什么是关闭?它与currying有什么关系?
computer-science glossary functional-programming terminology
我正在学习SICP。而且我发现的定义封在SICP是(也许)从其他语言的闭包定义不同。
这是SICP所说的:
创建元素为对的对的能力是列表结构作为表示工具的重要性的本质。我们将此功能称为cons的闭包属性。通常,如果可以使用相同的操作将事物与该对象合并的结果本身进行合并,则用于合并数据对象的操作将满足闭包属性。
我认为这里的闭包更接近于数学中的闭包,而不是我在JavaScript中看到的闭包,这意味着函数可以访问封闭的环境变量。
我错了吗?
我正在阅读SICP,并且出现了绑定变量和自由变量的主题。然而,我对此感到困惑。术语“绑定变量”仅适用于形式参数变量吗?此外,文本还指出过程定义“绑定”其形式参数。这让我感到困惑,因为有些人说我们将值“绑定”到变量。显然,当我们谈论不同类型的变量时,该术语似乎意味着不同的事物。有人可以澄清什么是绑定变量以及绑定的含义吗?最后,与绑定变量相比,什么是自由变量?所有这些与范围有何关系?