Erlang比较运算符如何正常工作?

时间:2014-01-07 13:13:18

标签: erlang

很抱歉这个基本问题,但我无法弄清楚:如果我使用普通的关系比较运算符和术语 - 它是如何工作的?

例如:

"AAA" > "aaa" => false - 为什么"AAA"小于"aaa"

如果我有两个原子:

atom1 < atom2 => true - 为什么atom1小于atom2

我如何/何时将比较运算符与原子一起使用?

1 个答案:

答案 0 :(得分:8)

  1. A具有ASCII码65,a具有ASCII码97,因此"A" < "a"
  2. 引用发明人的话:“实际的顺序并不重要 - 但总的顺序是明确的,这很重要”。这是因为您希望所有术语都具有可比性,因为只有在这种情况下您可以对它们进行排序(这通常是有用的)。
  3. 确切的规则在http://www.erlang.org/doc/reference_manual/expressions.html#id77480中给出:

      

    7.11术语比较

         

    定义了以下顺序:

         
        

    数字&lt;原子&lt;参考&lt;有趣&lt;港口&lt; pid&lt;元组&lt;列表&lt;位串

      
         

    逐个元素地比较列表。元组按大小排序,两个具有相同大小的元组逐个元素进行比较。