The book can be read online at learnyouahaskell.com
- learning how to think recursively is essential
- implementing
foldl
andfoldr
by yourself is the best way to really understand them - too much function composition with
.
is not advisable Functor
typeclass is fundamental for many other typeclassesApplicative
is a beefed upFunctor
Monad
is a beefed upApplicative
- learning about
kinds
is 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
length
andtake
- if you speak a different language than English, implement types like
Maybe
orEither
in 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