Jonathan Tang's Write Yourself a Scheme in 48 Hours is a classic introduction to Haskell, that progresses from installing Haskell to writing a fully-functional interpreter that implements a decent subset of R5RS Scheme.
In the following blog posts, I will be porting both the text and code as best I can to utilize Elm, while expanding the scope of the tutorial to include web development using the Elm Architecture and writing unit tests for Elm programs.
Since each lesson builds upon code written in previous ones, it's generally best to go through them in order.
Full source code for each chapter will be posted to Github.