Want to learn and master Elm?

Join Exercism’s Elm Track for access to 85 exercises grouped into 22 Elm Concepts, with automatic analysis of your code and personal mentoring, all 100% free.

Explore concepts

About Elm

module HelloWorld exposing (helloWorld)

helloWorld : Maybe String -> String
helloWorld maybeName =
    case maybeName of
        Nothing ->
            "Hello, World!"

        Just name ->
            "Hello, " ++ name ++ "!"

85 coding exercises for Elm on Exercism. From ETL to Bowling.

Get better at programming through fun, rewarding coding exercises that test your understanding of concepts with Exercism.

See all Elm exercises on Exercism

Key Features of Elm


For the Web

Elm is for making Web applications.


Elm aims at the most enjoyable developer experience possible.

Excellent performance

Elm has tiny compilation times, small assets and a fast runtime.

No runtime exception

Thanks to strict typing, Elm catches potential errors at compilation.

JavaScript interop

Elm has a dedicated interop mechanism with JavaScript called ports.

Functional but simple

Elm is a simple pure functional language, a good gateway for more advanced functional languages.

A taste of the concepts you'll cover

See all the concepts for Elm

Get mentored the Elm way

Every language has its own way of doing things. Elm is no different. Our mentors will help you learn to think like a Elm developer and how to write idiomatic code in Elm. Once you've solved an exercise, submit it to our volunteer team, and they'll give you hints, ideas, and feedback on how to make it feel more like what you'd normally see in Elm - they'll help you discover the things you don't know that you don't know.

Learn more about mentoring

Community-sourced Elm exercises

The Elm track on Exercism has 22 concepts and 85 exercises to help you write better code. Discover new exercises as you progress and get engrossed in learning new concepts and improving the way you currently write.

See all Elm exercises

Get started with the Elm track

The best part, it’s 100% free for everyone.