Introduction to Elm
I hope that you will have fun learning Elm and enjoy translating your ideas into delightful interactive programs!
update: for Elm 0.17 (May 12, 2016)
There are many breaking changes and some changes in philosophy (see farewell to FRP) with this release. I have not updated this document for the new release.
At this time I am not sure about the future of Elm, since I was drawn to it as an attempt to make the idea of functional reactive programming more accessible to programers. Now that it has become clear that making FRP accessible is not a goal for Elm anymore, it is not clear how to justify the investment of time and effort in Elm going forward.
Additionally, after working through some of the breaking changes in this release it seems that the language is still very immature. There is a lot code that needs rewriting and ideas that need rethinking after this release.
So, if you are a developer who wants to write (reactive) programs and build user interfaces, I suggest two paths:
This along with libraries like Angular or React (Redux) and RxJS seems to be the best way to build reactive web applications today. I am spending my time now with analyzing these tool sets. Once I get some time to review the changes to Elm, I will update this document.
I have written a similar [introduction to TypeScript](https://csmith111.gitbooks.io/introduction-to-typescript/content/) and once I have covered the basics will also discuss reactive programming with TypeScript.
This book is dedicated to all those who are looking for a deeper understanding into programming and want to find a better way.
Request for feedback:
Please drop me a note, if you have any comments/suggestions. I would like to improve the material and your feedback is very valuable. You can leave your feedback in the discussion section. Thank you.