Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?

I like Learn You a Haskell as a reference and cheat-sheet but I found it a little slow for learning Haskell.

Here's my recommended order for just learning Haskell:

http://yannesposito.com/Scratch/en/blog/Haskell-the-Hard-Way/ 80% completion here is fine if you feel your attention waning, the next thing will address hammering in things like functors and monads via typeclasses.

https://github.com/NICTA/course/ this will hammer in the lessons in a very direct form by forcing you to confront the challenges and lessons learned by the creators and community of Haskell itself. Doing the exercises here is critical for being fluent.

Real World Haskell is available online. (Thanks bos!)

I recommend RWH as a reference (thick book). The chapters for parsing and monads are great for getting a sense for where monads are useful. Other people have said that they've liked it a lot. Perhaps a good follow-up for practical idioms after you've got the essentials of Haskell down?

Concurrent with the NICTA course: http://blog.tmorris.net/posts/20-intermediate-haskell-exercises/

If you want to follow up on the type and category theory:

http://www.cis.upenn.edu/~bcpierce/tapl/ http://en.wikibooks.org/wiki/Haskell/Category_theory http://www.haskell.org/haskellwiki/Category_theory

Useful for understanding typeclasses in general but also some Hask-specific category theory: http://www.haskell.org/haskellwiki/Typeclassopedia

Search engine (can search by type): http://www.haskell.org/hoogle/?hoogle=%28a+-%3E+b%29+-%3E+%5ba%5d+-%3E+%5bb%5d

After you're comfortable with Haskell, strongly consider learning Lenses and Prisms, even if just as a "user". You don't need to understand the underlying category for it to be useful.

Seen here: http://hackage.haskell.org/package/lens

Follow Edward Kmett (author of lens, Haskell superhero) on twitter: https://twitter.com/kmett

If you need JavaScript, you probably want Purescript (not exactly Haskell) or Haste (is Haskell) for generating JS.

Most of all, don't sweat the stuff you don't understand immediately. Just keep moving.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment