Ninety-nine Problems, Solved in Elm
Who is this book for?
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 Elm's online editor, http://elm-lang.org/try. To run with a debugger use http://debug.elm-lang.org/try. 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?
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
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
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.