Bartosz Milewski:
Learning a new programming language involves learning syntax, semantics, and idioms. Syntax itself can tell you a lot about the philosophy of the language, but learning syntax without any context is not only hard but also boring. On the other hand, you’d want to get some handle on syntax as soon as possible, so you can sight-read simple programs and try your own hand at modifying them.
So here’s a little introduction to Haskell syntax, without any formal definitions, that touches on the philosophy of the language and tries not to be too boring.
It’s not boring at all.