有“横向”赋值运算符的语言吗?

时间:2013-09-19 21:16:46

标签: operator-keyword mirror

对于我所说的内容,我不知道一个非常好的名称,但是,大多数编程语言都使用语法来进行赋值语句:

(变量)(赋值运算符)(表达式)

有些人有一些特殊的赋值运算符,例如var1 += var2等同于var1 = var1 + var2

我的问题基本上是,是否有任何语言可以对待+ =如上所述,但也有一个= +运算符,以便var1 =+ var2等同于var2 = var2 + var1

基本上,是否存在具有“可镜像”赋值运算符的编程语言,因此右侧的变量是赋值一个新变量(而不是左侧的变量)?

编辑:

我想一个更好的例子,我所指的是一种语言,你可以将(variable) (assignment operator) (expression)(expression) (assignment operator) (variable)作为有效的陈述。

3 个答案:

答案 0 :(得分:3)

编程语言的作者通常会尽量保持他们的语言尽可能简单,没有任何不必要的冗余。因此,进行任何形式的双方评估都是多余的,不必要的。它只会使语言规范延长20页。我认为这个功能没有语言。

顺便说一句,你的“语法”(语法规则)并不清楚。如果有人写

怎么办?
var x = 3, y = 2;
x = y;

顺便说一句,Pascal有一个任务的“方向”。实际上,您可以将代码编写为

var x = 3, y = 2;
x := y;
y =: x;

并为此编写自己的简单预处理器,但同样,我认为这只是“干净”语言的复杂性。

答案 1 :(得分:3)

您建议只是让代码更难阅读的方法。如果只是合成糖用于以不同的顺序编写变量 ,那么拥有=+运算符是没有价值的。但是,既然你是这些奇怪的东西,你肯定会喜欢像BefungePiet这样的语言,它们会以某种扭曲的方式支持它。

答案 2 :(得分:1)

有些COBOL指令是这样的。例如。 ADD B TO A相当于其他语言中的“A + = B”。