2

我不知道我在说什么的好名字,但是,大多数编程语言都使用这样的赋值语句语法:

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

还有一些有一些特殊的赋值运算符,比如var1 += var2which 等价于var1 = var1 + var2.

我的问题基本上是,是否有任何语言可以像上面那样处理 += ,但也有 =+ 运算符,这样var1 =+ var2就相当于var2 = var2 + var1

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

编辑:

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

4

3 回答 3

3

编程语言的作者通常会尽量保持他们的语言简单,没有任何不必要的冗余。因此,进行任何类型的双边评估都是多余且不必要的。它只会使语言规范增加 20 页。我认为没有具有此功能的语言。

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

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

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

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

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

于 2013-09-19T21:25:00.743 回答
3

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

于 2013-09-19T21:30:05.943 回答
1

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

于 2013-09-19T21:22:38.860 回答