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

use*_*252 3 erlang

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

例如:

"AAA" > "aaa" => false- 为什么"AAA"不到"aaa"

如果我有两个原子:

atom1 < atom2 => true- 为什么atom1不到atom2

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

fil*_*mor 8

  1. A具有ASCII码65,因此a具有ASCII码97 "A" < "a".
  2. 引用发明人的话说:"实际的顺序并不重要 - 但是总的顺序很明确是很重要的".这是因为您希望所有术语都具有可比性,因为只有在这种情况下您才能对它们进行排序(这通常是有用的).

确切的规则在http://www.erlang.org/doc/reference_manual/expressions.html#id77480中给出:

7.11术语比较

定义了以下顺序:

number <atom <reference <fun <port <pid <tuple <list <bit-string

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