99 Elm Problems
This book contains highly nested pages and/or nesting with inappropriate navigation. Please adjust the layout and navigation in order to improve accessibility. For help, see Manual of Style#Nesting. |
Ninety-nine Problems, Solved in Elm
editWho is this book for?
editElm 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?
editElm 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
editIf 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
editThese 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
editYou can compile and execute the examples online at https://ellie-app.com/new.
Learning Track
editThe 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
editAll Problems
editThe problems are numbered to match the original 99 Problems in Prolog.
Authors and contributors
editThis Wikibook has been written by: