怎么写严格更大? (-lesser?,-greater-or-equal?,-lesser-or-equal?)

时间:2015-03-30 14:19:52

标签: case-sensitive rebol comparison-operators rebol3 red

Rebol和Red将普通equal?函数(简称为=)的概念视为一种“自然平等”。因此,它愿意比较1 = 1.0,即使一个是整数而另一个是浮点数......并且默认情况下不区分大小写地比较字符串和字符。

strict-equal?函数区分大小写,要求事物的数据类型相同,并且作为中缀绑定到==。 (还有strict-not-equal?函数!==。)

但是,其他比较运算符似乎没有严格的变体。如何使用框中的基元实现strict-greater?strict-lesser-or-equal?等?

行为将是,例如:

>> strict-lesser? "A" "a"
== true

1 个答案:

答案 0 :(得分:2)

正如endo64指出的那样,字符串是绊脚石,但由于它们的组件,字符具有所需的严格不等式,解决方案似乎是逐字符地比较字符串(“按字典顺序”,如果你愿意的话)。这适用于Rebol2,Rebol3和Red等。