Puedes usar los atoms siempre que tengas un conjunto de constantes que expresar. Los atoms ofrecen una forma segura en cuanto a tipos de comparar valores. Un atom se define por su nombre, precedido por dos puntos:
# Atoms start with a ':',
# followed by alphanumeric snake_cased characters
:an_atom
Muchas funciones de la biblioteca estándar de Elixir devuelven un atom para anotar el resultado:
Enum.fetch([1], 0)
# => {:ok, 1}
Enum.fetch([1], 2)
# => :error
Los Atoms se representan internamente mediante un número entero en una tabla de búsqueda, que se establece automáticamente. Eso hace que comparar atoms sea más rápido que comparar strings. No es posible cambiar ese valor interno. Por lo general, se considera un anti-patrón crear atoms dinámicamente a partir de datos que proporciona el usuario. El entorno de ejecución solo tiene espacio para una cantidad limitada de atoms, así que generar atoms nuevos en tiempo de ejecución podría fallar si la tabla de atoms está llena.