هر زمان که مجموعهای از ثابتها برای بیان داشته باشید، میتوانید از «اتم» استفاده کنید. اتمها روشی ایمن از نظر نوع برای مقایسهی مقادیر فراهم میکنند. اتم با اسمش تعریف میشود که یک دونقطه پیش از آن میآید:
# Atoms start with a ':',
# followed by alphanumeric snake_cased characters
:an_atom
بسیاری از توابع در کتابخانهی استاندارد Elixir برای نشانهگذاری نتیجه، یک اتم برمیگردانند:
Enum.fetch([1], 0)
# => {:ok, 1}
Enum.fetch([1], 2)
# => :error
اتم بهطور داخلی با یک عدد صحیح در یک جدول جستوجو بازنمایی میشود؛ این عددها بهطور خودکار تعیین میشوند. این باعث میشود مقایسهی اتمها از مقایسهی رشتهها سریعتر باشد. تغییر این مقدار داخلی ممکن نیست. معمولاً این کار که اتمها را بهصورت پویا از ورودی ارائهشده توسط کاربر بسازیم، «ضدالگو» در نظر گرفته میشود. زمان اجرا فقط برای تعداد محدودی اتم جا دارد؛ اگر جدول اتم پر شود، ساختن اتمهای جدید در زمان اجرا ممکن است شکست بخورد.