Du kannst Atome immer dann verwenden, wenn du eine Reihe von Konstanten ausdrücken möchtest. Atome bieten eine typsichere Möglichkeit, Werte zu vergleichen. Ein Atom wird durch seinen Namen definiert, dem ein Doppelpunkt vorangestellt wird:
# Atoms start with a ':',
# followed by alphanumeric snake_cased characters
:an_atom
Viele Funktionen in der Standardbibliothek von Elixir geben ein Atom zurück, um das Ergebnis zu kennzeichnen:
Enum.fetch([1], 0)
# => {:ok, 1}
Enum.fetch([1], 2)
# => :error
Intern werden Atome durch eine Ganzzahl in einer Nachschlagetabelle repräsentiert, die automatisch festgelegt wird. Dadurch ist der Vergleich von Atomen schneller als der Vergleich von Strings. Dieser interne Wert lässt sich nicht ändern. Es gilt allgemein als Anti-Pattern, Atome dynamisch aus Benutzereingaben zu erzeugen. Die Laufzeitumgebung hat nur Platz für eine begrenzte Anzahl von Atomen. Werden zur Laufzeit neue Atome erzeugt, kann das fehlschlagen, wenn die Atomtabelle voll ist.