Atoms
| What atoms are | |
| Atom rules | |
| Compare atoms | |
| Atom tools |
What atoms are
An atom is a constant whose name is its value. Atoms carry no data of their own; they mark states, results, and keys.
The two most famous atoms are true and false, and the third is nil, the empty list. You will meet all three in lesson 9.
ok.
ok
2> error.
error
Atom rules
An atom starts with a lowercase letter and continues with letters, digits, underscores, and the at sign. Anything richer needs single quotes, and the quotes become part of the atom.
Atoms are not garbage collected in the old sense: the atom table is global and bounded, so never build them from user input in a loop.
max_value.
max_value
2> 'Tuesday morning'.
'Tuesday morning'
Compare atoms
The double equals compares values loosely, and the triple equals compares types strictly. Atoms never equal numbers, even when they look alike.
Use the strict form by default: it keeps 1 and 1.0 apart and makes every test predictable.
ok =:= ok.
true
2> ok == ok.
true
3> 1 == 1.0.
true
Atom tools
The atom module converts between atoms and strings. list_to_atom builds an atom at runtime, which is the one place to be careful with the atom table.
atom_to_list(ok).
"ok"
2> list_to_atom("ready").
ready
Next: Strings and binaries
Article author: Arthur Isaev