编程语言中的链式不等式表示法

Dav*_*rin 13 conditional programming-languages

是否有一种支持链式符号的编程语言a <b <c而不是条件语句中的<b和b <c?

例:

  1. 如果(2 <x <5)
  2. if(2 <x && x <5)

第一个声明对我来说更好看,它更容易理解,编译器可以使用传递性属性来警告错误(例如5 <x <2会发出警告).

R. *_*des 13

Python就是这么做的.

  • @tutuca:我只需要这些信息,所以参考文献在这里:https://docs.python.org/2/reference/expressions.html#not-in.Quote:形式上,如果_a,b,c,...,y,z_是表达式而_op1,op2,...,opN_是比较运算符,那么`a op1 b op2 c ... y opN z`是等价的到'a op1 b和b op2 c和... y opN z`,除了每个表达式最多被评估一次. (3认同)

Nor*_*sey 6

Icon这样做,它不是任何hacky特殊情况"链接"的一部分; 它是Icon的目标导向评估模型的一部分.任何比较成功失败.如果成功,它会产生右侧.所以你可以写

if 0 <= i <= j < n then ...
Run Code Online (Sandbox Code Playgroud)

它的工作方式与您期望的完全一致.但它不仅适用于比较,也适用于任何表达; 这意味着您可以编写自己的功能,以完全相同的方式"链接".我喜欢Icon的这个方面,希望更多的语言可以结合目标导向的评估.

NB在Guido的论文中,我在VHLL(20世纪90年代中期)介绍了Python,他明确地提到了Icon作为Python设计的灵感来源.