具有简写等式逻辑的编程语言,用于将一个变量与多个变量进行比较

时间:2011-08-22 09:35:14

标签: programming-languages equality

我有兴趣知道是否存在具有“简写等式结构”的编程语言(我只是将该术语编写,但不确定如何描述它)。

所以而不是正常:

  

if(X == 1 || X == 2)

一种简短的平等检查,如下所示:?

  

if(X == 1 || 2)

据我所知,有许多适用于&再次为这种结构。而且我可以创建功能来做类似的事情,但我会感兴趣是否有语言可以让你开箱即用。


修改

感谢Michael帮助我澄清事情,我喜欢Python的方式。

我会尝试更好地解释,因为看上面我的问题并不能很好地解释。

而不是检查集合中的某些内容,或者在后台创建集合。

我想知道是否有编程语言只定义左手变量一次,它会自动为你创建左右。

所以写下这个:

if(X == 1 || 2 || 3)

实际上会创建

if(X == 1 || X == 2 || X == 3)

我意识到这个伪synatx并不是非常有用,而且创建集合是一种很好的方法。但想知道它是否存在于任何地方。

2 个答案:

答案 0 :(得分:2)

我不知道该语法的任何内容,但它与测试集合成员资格密切相关,许多语言都包含这些成员资格,无论是作为语言构造还是作为库。

例如,考虑一下Python:

x = 1
if x in {1, 2}:
    #do something

适用于Python 2.7+,其中有set literals的语法。早期版本的Python会将集合构造为:

x = 1
if x in set([1, 2]):
    #do something

除了语法差异之外,上述基于集合的方法也有所不同,因为所有可能的值都得到了热切的评估。例如,你不能这样做:

x = 1
if x in {1, 2/0}:
    #do something

你得到一个除以零的错误。

答案 1 :(得分:2)

Bourne shell:

case $x in one | 2 | thr33 | f0re) echo less than six;; esac  # spot logic error