Skip to content

Instantly share code, notes, and snippets.

@eldritchideen
Forked from bitemyapp/gist:8739525
Created April 27, 2014 19:54
Show Gist options
  • Save eldritchideen/11354248 to your computer and use it in GitHub Desktop.
Save eldritchideen/11354248 to your computer and use it in GitHub Desktop.

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://www.seas.upenn.edu/~cis194/lectures.html Brent Yorgey's course is the best I've found so far and replaces both Yann Esposito's HF&H and the NICTA course. This course is particularly valuable as it will not only equip you to write Haskell but also help you understand parser combinators.

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?

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

If you need JavaScript, you probably want Purescript for generating JS. Purescript not strictly Haskell but it is very similar.

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