gpt4 book ai didi

function - 函数是一种变量吗?

转载 作者:行者123 更新时间:2023-12-04 10:07:18 25 4
gpt4 key购买 nike

我曾经认为变量是数据,函数是数据映射,它们在一般意义上是不同的东西。然而,在阅读一些语言标准(即 Haskell)时,我发现该标准似乎将它们组合在一起(参见 2.4、10.5 和 this question)。

所以,我有几个关于变量和函数的问题(除了问题标题):

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


  • 编辑 :

    概括

    在阅读了所有的答案(他们真的很棒)之后,我意识到我的怀疑是由于“运算符(operator)”和“功能”之间的混淆:我错误地将两者混为一谈。
    正确的理解应该是:一个“运算符”只是一个 符号 那是指“功能”。

    请允许我从 E-Lisp Intro 借用我觉得很有帮助的解释:

    We can articulate another characteristic of Lisp based on what we have discussed so far—an important characteristic: a symbol, like +, is not itself the set of instructions for the computer to carry out. Instead, the symbol is used, perhaps temporarily, as a way of locating the definition or set of instructions. What we see is the name through which the instructions can be found. Names of people work the same way. I can be referred to as ‘Bob’; however, I am not the letters ‘B’, ‘o’, ‘b’ but am, or was, the consciousness consistently associated with a particular life-form. The name is not me, but it can be used to refer to me.

    最佳答案

    不,函数不是变量。函数是一个值(在 Haskell、Python、JavaScript、Clojure 和许多其他语言中,但不是在所有语言中)。变量(或符号、标识符)可以引用或为 绑定(bind)为一个值。因此,变量/符号/标识符可以引用函数。

    您的子问题:

  • 恕我直言,是的。例如,数学中有高阶逻辑。数学中也有常见的高​​阶函数,例如导数、积分和求和。
  • 恕我直言,变量不是通过“具有类型”来定义的——值也有类型,尽管可能在不同的意义上——而是通过它们表示(代表、引用、指向)其他东西的能力。

    “什么是变量?”可能应该作为一个单独的问题提出,因为据我所知,精确的答案非常复杂并且 Root 于数学史。
  • 不,函数具有类型这一事实并不意味着它们是变量。

  • 更仔细地阅读您的问题,我认为这里有两个单独的问题:1)什么是“东西”? 2)不同事物之间的相似之处。因此,虽然您已经确定了变量和函数之间的相似之处,但这并不意味着函数"is"变量,反之亦然。我将尝试通过一个 Java 示例来说明这一点(请耐心等待!):假设您有一个包含两个类的 Java 程序, VariableFunction ,你想知道如何在它们之间建立继承关系。我的回答是,我不认为有一个——没有一个继承自另一个——但你不需要一个,因为你可以创建接口(interface)来捕获你感兴趣的方面,然后实现这些接口(interface)两个类(class)。

    关于function - 函数是一种变量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25327705/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com