相关疑难解决方法(0)

函数是一种变量吗?

我曾经认为变量作为数据和函数作为数据映射,它们在一般意义上是不同的东西.但是,在阅读某些语言标准(即Haskell)时,我发现该标准似乎将它们组合在一起(参见2.4和10.5,以及这个问题).

所以,我有一些关于变量和函数的问题(除问题标题外):

  1. 他们的语言特定意义(例如在Haskell中)是否也符合一般意义上的含义?
    (即前者是后者的一个子集.)或者一个意义有另一个的补充集?
    ("一般意义上"我的意思是数学.)
  2. "变量"的定义是什么?
    "有一个类型"是否定义了一个"成为变量"的东西?
  3. 我认为概念"功能"具有以下(结构化)方面.
    它的一个子方面确实有一个类型,那么,它是否使"函数"成为一个变量?
    功能(有方面的:)
    • 函数说明符/标识符:指定要引用的函数
    • 功能/映射:指定函数的功能,即它将哪些数据映射到哪些数据.(有方面的:)
      • 映射类型:例如在Haskell中,函数可以具有(a - > b)的类型

编辑:

摘要

在阅读完所有答案后(他们真的很棒),我意识到我的怀疑是由于"操作员"和"功能"之间的混淆:我把这两件事搞错了.正确的理解应该是:"操作员"只是一个指代"功能" 的符号.

请允许我借用E-Lisp Intro中的解释,我发现它非常有帮助:

我们可以根据我们到目前为止所讨论的内容阐明Lisp的另一个特征 - 一个重要特征:符号,如+,本身并不是计算机执行的指令集.相反,该符号可能暂时用作定位定义或指令集的方式.我们看到的是可以找到指令的名称.人们的名字以同样的方式工作.我可以被称为'鲍勃'; 然而,我不是字母'B','o','b',而是我或者是,意识始终与特定的生命形式相关联.这个名字不是我,但它可以用来指我.

variables haskell function

7
推荐指数
2
解决办法
315
查看次数

三个问题与评估的环境模型

我正在阅读SICP书籍这里有关命令式编程模型.我无法理解两点中的插图: 在此输入图像描述

  1. 从箭头square到"对"(两个圆圈):这个箭头是什么意思?虽然在本节中,箭头表示"封闭环境",但这个特定箭头似乎并未指向环境.(square环境是global env,而不是"对")
  2. 低于正确的理解:在过程定义的值中,其"代码文本"部分(左侧圆圈)没有对其中的符号的解释.它们只是"文字".只有在程序应用程序中,它们才能在应用程序的上下文/环境中获得意义.
  3. 如果2是正确的,为什么需要从该environment part对(右圆)到封闭环境的箭头?(因为没有任何意义来解释过程定义中过程代码中符号的含义.)

lisp variables evaluation function sicp

4
推荐指数
1
解决办法
206
查看次数

标签 统计

function ×2

variables ×2

evaluation ×1

haskell ×1

lisp ×1

sicp ×1