Rebol和Red将普通equal?
函数(简称为=
)的概念视为一种“自然平等”。因此,它愿意比较1 = 1.0
,即使一个是整数而另一个是浮点数......并且默认情况下不区分大小写地比较字符串和字符。
strict-equal?
函数区分大小写,要求事物的数据类型相同,并且作为中缀绑定到==
。 (还有strict-not-equal?
函数!==
。)
但是,其他比较运算符似乎没有严格的变体。如何使用框中的基元实现strict-greater?
或strict-lesser-or-equal?
等?
行为将是,例如:
>> strict-lesser? "A" "a"
== true
答案 0 :(得分:2)
正如endo64指出的那样,字符串是绊脚石,但由于它们的组件,字符具有所需的严格不等式,解决方案似乎是逐字符地比较字符串(“按字典顺序”,如果你愿意的话)。这适用于Rebol2,Rebol3和Red等。