对于仅具有不可变引用或标签的语言,对于名称变量有什么好的替代方案?


11

例如,在函数式语言中,变量是单个赋值,并且一旦赋值它们的值就不可变。因此,它们有两个状态unboundbound,一旦绑定,就无法更改。

是否有最适合诸如事物之类的数学术语或其他计算机科学术语?一些语义并不意味着方差或可变性。

如果不存在诸如term之类的词,并且如果您正在设计一种具有这种结构的语言,那么您除了使用word 变量之外还会使用什么呢?

不是真的希望调查的想法,我试图找出是否已经有一个公认的行业(任何行业)项这样的事情。


1
只是称它们为不可变的;)
Oded

最终变量?
smp7d 2012年

9
这些变量的数学术语是“变量”。直到编程语言进入画面,可变变量的概念才真正出现。
sepp2k 2012年

1
我不同意@ sepp2k。莱布尼兹在微分学的发展中引入了“变量”一词,此后一直是数学和物理学的一部分。这些可变数量必然需要改变的可能性。否则,$ \ Delta x $或$ dx $的想法是没有意义的。
MichaelBächtold17年

1
@ sepp2k我不同意。还有就是在数学重新分配的概念,但它历来不叫的方式。数学家不断在他们的上下文中引入变量x,y(而不给它们赋值),并假设一些关于变量的变量,例如y + x = 5。接下来,他们可以假设x = 1并得出y = 4。他们可以放弃假设x = 1并改为假设x = 2,然后得出y = 3。对我而言,这是x的变化,并且我们仍在谈论相同的变量x,因为在两种情况下x + y = 5的假设都成立。
MichaelBächtold17年

Answers:


4

那“符号”呢?

我在F#上看到了一段视频,演讲者说,

您没有为变量分配值,而是绑定符号

(仍在寻找参考。)

每当在这样的结构不可变的地方遇到“可变”一词时,我都会默默地认为“绑定符号”。


10

只需将它们称为变量即可。数学有变量;功能语言具有相同类型的变量。

另请参阅Bob Harper关于此术语问题的这篇文章。


尽管这符合我的期望,但所提供的链接只会激起更多的辩论,而不是答案。

@JarrodRoberson,只需将链接的文章作为“为什么变量是一个适当的术语”;随时忽略有关“可分配对象”的部分。
Ryan Culpepper 2012年

1
是的,在该讨论中,可分配资产有点像是在拖延。但我个人现在还在语义粘在 变化的部分变量和事实,计算机科学是不是在很多情况下100%直接相关的数学术语。

4

如果它可以在不同的调用中采用各种值,那么它仍然是一个变量。换句话说,即使一旦分配就无法更改,该符号也可以最初分配给不同的值。与此相反,该常数在每次调用时都包含相同的值。



1

名称。可以通过多个名称(x = 4; y = 4)合理地调用同一件事;名称一旦定义就永远不会更改其引用对象。x = 2; x = 3仅仅说章鱼不是章鱼是没有道理的。


我喜欢这个,我当时在考虑这个词,label但是name效果不错,即使不是更好。

0

为什么不只坚持那个词呢?可能不是100%合适,但是当您选择其他名称时,可能会比您尝试解决的名称引起更多的误解。其他功能语言的设计人员可能会遇到相同的问题,但他们还是决定使用术语“变量”。

XSLT(已广泛使用):

http://www.w3schools.com/xsl/el_variable.asp

Haskell:

http://www.haskell.org/onlinereport/haskell2010/haskellch3.html#x8-240003.2

方案:

http://www.scheme.com/tspl2d/binding.html

Erlang:

http://www.erlang.org/doc/reference_manual/expressions.html

他们所有人都使用术语“变量”。

当然,其他语言设计师更喜欢谈论“绑定”或“绑定值”,例如此处的F#:

http://msdn.microsoft.com/zh-CN/library/dd233238.aspx


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.