The book can be read online at learnyouahaskell.com
- learning how to think recursively is essential
- implementing
foldlandfoldrby yourself is the best way to really understand them - too much function composition with
.is not advisable Functortypeclass is fundamental for many other typeclassesApplicativeis a beefed upFunctorMonadis a beefed upApplicative- learning about
kindsis essential for really understanding types - when in doubt, why not use a good old list comprehension?
- list comprehensions are a good fit for code challenges
- guards make the code extremely readable
- use generic versions of functions like
lengthandtake - if you speak a different language than English, implement types like
MaybeorEitherin that language, it's a great exercise (e.g.data Vielleicht a = Nichts | Einfach a, then make the according instances)
The notes on this book turned into a vague reference for Haskell and can be found at doc.robelv.net