표현해야 할 상수 집합이 있을 때는 언제든지 아톰을 사용할 수 있어요. 아톰을 사용하면 값을 타입 안전하게 비교할 수 있어요. 아톰은 이름 앞에 콜론을 붙여 정의해요:
# Atoms start with a ':',
# followed by alphanumeric snake_cased characters
:an_atom
Elixir 표준 라이브러리의 많은 함수는 결과를 나타내기 위해 아톰을 반환해요:
Enum.fetch([1], 0)
# => {:ok, 1}
Enum.fetch([1], 2)
# => :error
아톰은 내부적으로 조회 테이블의 정수로 표현되는데, 이 값은 자동으로 정해져요. 그래서 아톰을 비교하는 것이 문자열을 비교하는 것보다 빨라요. 이 내부 값은 바꿀 수 없어요. 사용자가 제공한 입력으로 아톰을 동적으로 만드는 것은 일반적으로 안티 패턴으로 여겨져요. 런타임에는 제한된 수의 아톰만 담을 수 있어서, 아톰 테이블이 가득 차면 런타임에 새 아톰을 만드는 것이 실패할 수 있어요.