在代数中,如果我使语句x + y = 3,我使用的变量将保存值为2和1或1和2.我知道编程中的赋值不是一回事,但我不得不想知道.如果我想表示一个量子奇怪的粒子的值,我希望我的变量同时具有两个值,并让它在一个或另一个之后解析.或者也许我只是在做梦?
有可能说出类似的话i = 3 or 2;
吗?
这是Perl 6(联结)计划的功能之一,其语法应如下所示my $a = 1|2|3
;
如果实施,它将直观地工作,就像$a==1
在同一时间一样真实$a==2
.另外,例如,$a+1
会给你一个值2|3|4
.
这个功能实际上也可以在Perl5中通过Perl6 :: Junction和Quantum :: Superpositions模块获得,但没有语法糖(通过'functions' all
和any
).
至少对于比较(b < any(1,2,3)
)也正是在微软提供C-Omega实验的语言,但是它没有记录任何地方(我只是尝试它,当我看着C-Omega,它只是工作).
你不能用本机类型来做这件事,但没有什么可以阻止你创建一个变量对象(假设你使用的是OO语言),它有一系列的值甚至是概率密度函数而不是实际值.
您还需要定义变量与变量和本机标量之间的所有数学运算符.相同和赋值运算符也是如此.
numpy数组为向量和矩阵做类似的事情.