First impressions of Elm

This week, I've been learning Elm. While at the Recurse Center, I came across the book Seven Languages in Seven Weeks. The book's concept appealed to me. While I don't think it's possible to learn a programming language in a week, I think there's value in broadening your horizons with the quick study of a wide range of concepts.

This post summarises my initial thoughts about Elm, and lists some resources which may help you learn it.


Elm is a front-end language. It compiles to JavaScript, HTML and CSS. It is a strongly typed, purely functional language, and it borrows syntax from Haskell. It has a small syntax, and only implements a few core libraries.

Elm defines the Elm Architecture, a pattern that most applications should follow. This architecture splits code into three sections:

  1. Model - the state of an application
  2. Update - the way to update the state
  3. View - how the state is presented as HTML