Elm

Join the Elm Track
Elm is a pure, functional language that compiles to javascript
Join the Elm Track
Track mentors

13 Mentors

Our mentors are friendly, experienced Elm developers who will help teach you new techniques and tricks.
Track students

2,730 Students

Join thousands of students who have enjoyed learning and improving their skills by taking this track.
Track exercises

43 Exercises

Hundreds of hours have gone into making these exercises fun, useful, and challenging to help you enjoy learning.

About Elm

module HelloWorld exposing (helloWorld)


helloWorld : Maybe String -> String
helloWorld name =
    case name of
        Just name_ ->
            "Hello, " ++ name_ ++ "!"

        Nothing ->
            "Hello, World!"

Elm is a pure, functional language that compiles to javascript.

It was designed by Evan Czaplicki as part of writing his thesis on Concurrent FRP for Functional GUIs and evolved into a language to help make making user interfaces better.

Elm's goal is to be the simplest and best language for making web-based user interfaces.

Elm aims to completely eliminate runtime exceptions by combining an aggressively helpful compiler with solid architectural principles.

You can learn more about Elm at the official website.

Join the Elm track

Exercism is a great website

Exercism is a great website where I was able to have some very interesting challenges.

Relaxed. Encouraging. Supportive.

Meet the Elm Track mentors

Once you join the Elm language track, you will receive support and feedback from our team of mentors. Here are the bios of a few of the mentors of this track.

Avatar of Jake Varness

Jake Varness GitHub Page

Elm is a great language for folks to learn functional programming. Elm was the first functional programming language I've learned, and is great for teaching fundamental concepts and paradigms used when creating single-page web applications!
Avatar of Yeong Sheng, Tan

Yeong Sheng, Tan https://github.com/yeongsheng-tan

I was working on our front-end EmberJS codebase back in 2014, and beginning to toy with ReactJS. Given I've not touched Javascript since 2005, EmberJS and ReactJS did not feel right at home for me. Then Redux came along, and that was when I found elm-lang which did everything that React+Redux provided, with a friendly compiler, less boiler-plate code, and the safety of no runtime ever once it compiles.
Avatar of Cedd Burge

Cedd Burge Blog Posts

I'm a software lead / architect / manager type thing and I have a strong focus on code quality. Elm is the first functional language I've learned and it's impressively easy. The language has a strong focus on simplicity and a single recommended way of doing things, which is a refreshing change in the Front End world. It sits very well in it's target niche, and the runtime essentially provides an impure abstract syntax tree interpreter, leaving all your code 100% pure / functional. There is a strong and vibrant community, which is both innovative and supportive to newcomers.
Avatar of Vasanth Pappu

Vasanth Pappu

I am drawn to Elm because it is a safe, reliable, and refactorable alternative to building webapps. It's an approachable language that not only supports the dynamic nature of greenfield projects, but it can also be adopted in small steps within legacy apps implemented in other front-end solutions.
Avatar of Percy Grunwald

Percy Grunwald

If it compiles, it will work forever. I've never written applications with fewer runtime errors than I have in Elm. Don't let the learning curve disuade you, once you're proficient in Elm you won't look back.
Avatar of Léo Jeusset

Léo Jeusset https://github.com/leojpod

I worked with Elm professionaly and I love it! Trusting the language is such a relief on your mind, as a developer you can really start to express yourself and let the code flow, the compiler will watch your back!
Fun. Challenging. Interesting

Community-sourced Elm exercises

These are a few of the 43 exercises on the Elm track. You can see all the exercises here.

Accumulate
easy
recursion
transforming
Bracket Push
medium
parsing
stacks
Gigasecond
easy
dates
Pascal's Triangle
medium
lists
math
recursion
Roman Numerals
medium
recursion
transforming
Two Fer
easy
strings
Passionate. Knowledgeable. Creative.

Meet the Elm Track maintainers

The Elm Maintainers are the brains behind the Elm Track. They spend their spare time creating interesting and challenging exercises that we can all learn from. We are incredibly grateful for their hard work. Here are the bios of a few of the maintainers of this track.

Avatar of Kenneth Bogner

Kenneth Bogner

This maintainer has not added their bio yet.

Get started with the Elm track. As with everything on Exercism, it's 100% free!

Join the Elm Track