# 99 Elm Problems

# Ninety-nine Problems, Solved in Elm[edit]

## Who is this book for?[edit]

Elm is an easy to use pure functional programming language. These exercises give you a path to learn and practice functional idioms. The techniques demonstrated in this book apply to any functional programming language.

This book makes it easy to jump into programming, no installs required. You can code and test your solutions on https://ellie-app.com/new. Every problem has a unit test and a full program to test your solution. Many problems have multiple solutions, demonstrating different approaches to solving a problem.

## Who *isn’t* this book for?[edit]

Elm is an easy to use web development language. The problems posed in this book do not cover web specific topics. If you are comfortable with functional programming and are looking to learn how to use Elm to develop web apps and web pages, then this book is NOT for you. Try instead Evan Czaplicki’s Introduction to Elm. However there are two problems that use the Elm Architecture to handle randomness (Problem 23) and time (Problem 38).

## Where to begin[edit]

If you’re new to functional programming, start with the Learning Track. This will introduce you to the basic techniques of functional programming in a progression to help you learn through practice. If you just want to jump into the problems, start at Problems by Category.

## History of the 99 Problems[edit]

These problems are adaptations for Elm from Ninety-Nine Haskell Problems, which are adaptations of Ninety-Nine Prolog Problems developed by Werner Hett. The title is more figurative than literal. There weren’t 99 problems in the original Prolog collection. A few of the original Prolog problems don’t apply to Elm. The numbering of the problems is consistent with the other collections to ease comparisons. Other adaptations include Lisp, Scala, OCaml, Python and R.

## Testing your work[edit]

You can compile and execute the examples online at https://ellie-app.com/new.

## Learning Track[edit]

The Learning Track presents the problems in an order designed to learn functional programming building from the most basic idioms to more complex. These problems let you practice your skills before moving on to the next concept. Each step of the Learning Track presents a new technique and problems that you can solve with that technique.

## Problems by Category[edit]

## All Problems[edit]

The problems are numbered to match the original *99 Problems in Prolog*.

## Authors and contributors[edit]

This Wikibook has been written by: