是否存在默认情况下“变量”是不可变的(const、final 等)的编程语言?
而且,要使其可变,您需要声明一个额外的不可变限定符 ?
最佳答案
Functional Programming的理念范式非常适合所有“变量”都是不可变的,而“可变”变量只允许在极端情况下(即,对于 I/O)。因此,大多数函数式编程语言都喜欢各种 Lisp 方言和 Haskell 将(通常情况下)强化不可变的变量。当然,有些语言比其他语言提供了更多的灵活性,但中心范式/哲学仍然存在,这阻碍了它。
编辑:响应您的编辑:
如果您正在寻找具有更友好常量的 C,那么采用全新的编程范式不是您的解决方案。在函数式编程中,一切是不可变的(在大多数情况下),并且您通常会看到一种全新的基本哲学和编程方法。
如果您只想更轻松地声明常量,这并不是真正的解决方案。
编辑2:回应人们对我的评价:
虽然我做对了(我希望)回答了提问者的问题,但鉴于他的新编辑/评论,我不确定这是一个有用的答案。但是,我希望能够让他睁开眼睛看到一个全新的美丽编程世界 =)
Edit3:这里是Wikipedia's List函数式编程语言:
这些语言中的大多数都有一些非功能性异端的次要元素/影响;标记为“纯功能”的则没有。
(据我所知,函数式编程语言是唯一在哲学上鼓励不可变变量的语言。默认情况下,可能有些语言具有不可变的变量,而范式不是函数式的。这个概念对我来说听起来很奇怪,但我可以”考虑到那里有大量、大量、大量的编程语言,不保证一揽子“永远不会”声明。我只想说,据我所知,这是极不可能的)
一位评论者建议 艾达 是一种默认情况下具有不可变变量的命令式/面向对象的编程语言。
关于programming-languages - 默认情况下不可变的编程语言?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3137082/