我曾经认为变量作为数据和函数作为数据映射,它们在一般意义上是不同的东西.但是,在阅读某些语言标准(即Haskell)时,我发现该标准似乎将它们组合在一起(参见2.4和10.5,以及这个问题).
所以,我有一些关于变量和函数的问题(除问题标题外):
编辑:
摘要
在阅读完所有答案后(他们真的很棒),我意识到我的怀疑是由于"操作员"和"功能"之间的混淆:我把这两件事搞错了.正确的理解应该是:"操作员"只是一个指代"功能" 的符号.
请允许我借用E-Lisp Intro中的解释,我发现它非常有帮助:
我们可以根据我们到目前为止所讨论的内容阐明Lisp的另一个特征 - 一个重要特征:符号,如+,本身并不是计算机执行的指令集.相反,该符号可能暂时用作定位定义或指令集的方式.我们看到的是可以找到指令的名称.人们的名字以同样的方式工作.我可以被称为'鲍勃'; 然而,我不是字母'B','o','b',而是我或者是,意识始终与特定的生命形式相关联.这个名字不是我,但它可以用来指我.
我正在阅读SICP书籍这里有关命令式编程模型.我无法理解两点中的插图:

square到"对"(两个圆圈):这个箭头是什么意思?虽然在本节中,箭头表示"封闭环境",但这个特定箭头似乎并未指向环境.(square环境是global env,而不是"对")environment part对(右圆)到封闭环境的箭头?(因为没有任何意义来解释过程定义中过程代码中符号的含义.)