Особенности архитектуры Elm-приложений заключаются в том, что логика программы разбивается на три чётко разделённые части: модель, обновление и отображение. 2 Вместе эти компоненты создают однонаправленный поток данных, который легко понимать и отлаживать. 1
Модель представляет состояние приложения. 1 Это структура данных, которая содержит всю информацию, необходимую для отображения приложения. 1
Функция обновления определяет, как приложение реагирует на разные сообщения (или действия). 1 Она принимает сообщение и текущую модель и возвращает обновлённую модель. 1
Функция отображения принимает текущую модель и возвращает HTML. 1 В Elm используется виртуальный DOM, что делает обновление вида очень эффективным. 1
Такая архитектура улучшает модульность, упрощает повторное использование кода и тестирование. 2