erlang

Why is nil > 0 true in Erlang?


Erlang is the first language I come across to give true for nil > 0.

What is the story behind this decision?

Other languages seem to behave differently.

Python:

None > 0
# False

JavaScript:

null > 0
// false

Ruby:

nil > 0
NoMethodError: undefined method `>' for nil:NilClass

Solution

  • In Erlang, Any term may be compared with any other term. The ordering for Erlang Term Comparisons is:

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

    thus nil > 0 is true more information on Term Comparisons