99 Elm Problems
The most recent version of 99 Elm Problems is on Gitbook.com. Changes to Gitbook have made 99 Elm Problems less discoverable so we will update the wikibook version to the latest content. If you would like to contribute to the effort please leave a note on the discussion page.
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 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?
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.
Testing your work
You can compile and execute the examples online at https://ellie-app.com/new.
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
The problems are numbered to match the original 99 Problems in Prolog.
Authors and contributors
This Wikibook has been written by: