An Introduction to Elm

    This guide will:

    • Teach you the fundamentals of programming in Elm.
    • Show you how to make interactive apps with The Elm Architecture.

    By the end I hope you will not only be able to create great web apps in Elm, but also understand the core ideas and patterns that make Elm nice to use.

    Of course I think Elm is good, so look for yourself.

    Here is a simple counter. If you look at the code, it just lets you increment and decrement the counter:

    Forget what you have heard about functional programming. Fancy words, weird ideas, bad tooling. Barf. Elm is about:

    • No runtime errors in practice. No . No is not a function.
    • Friendly error messages that help you add features more quickly.
    • Automatically enforced semantic versioning for all Elm packages.

    No combination of JS libraries can ever give you this, yet it is all free and easy in Elm. Now these nice things are only possible because Elm builds upon 40+ years of work on typed functional languages. So Elm is a functional language because the practical benefits are worth the couple hours you’ll spend reading this guide.