From 767a7cfa99dc454da9d2712b3a5f2dd1c1c89165 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn-Egil=20Dahlberg?= Date: Tue, 8 Sep 2015 12:19:49 +0200 Subject: doc: Update term comparison with Maps --- system/doc/reference_manual/expressions.xml | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/system/doc/reference_manual/expressions.xml b/system/doc/reference_manual/expressions.xml index 668a51d6bc..893398b71b 100644 --- a/system/doc/reference_manual/expressions.xml +++ b/system/doc/reference_manual/expressions.xml @@ -568,10 +568,14 @@ Expr1 op Expr2

The arguments can be of different data types. The following order is defined:

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

Lists are compared element by element. Tuples are ordered by size, two tuples with the same size are compared element by element.

+

Maps are ordered by size, two maps with the same size are compared by keys in + ascending term order and then by values in key order. + In maps key order integers types are considered less than floats types. +

When comparing an integer to a float, the term with the lesser precision is converted into the type of the other term, unless the operator is one of =:= or =/=. A float is more precise than @@ -591,7 +595,11 @@ true 2> 1=:=1.0. false 3> 1 > a. -false +false +4> #{c => 3} > #{a => 1, b => 2}. +false +4> #{a => 1, b => 2} == #{a => 1.0, b => 2.0}. +true

-- cgit v1.2.3