News for hackers. Stuff that matters.
Re:GHC 7.8.1 released by coolsunglasses on Wednesday April 09, 2014 @02:03PM (#7561030)
If you want an alternative opinion from somebody who

1. Has taught a lot of Haskell

2. Thinks LYAH is better as a reference than a step-by-step method for learning Haskell

Then see my Learning Haskell gist here (it includes Haskell Fast & Hard, and other things too).

https://gist.github.com/bitemyapp/8739525

If anybody is learning Haskell and needs help, please email me.

Edit: I agree with nnq, I think LYAH moves too slowly and fails to show you what about Haskell is truly different and worthwhile in a compact enough format. That said, it is great as a reference as the explanations of concepts are stand-alone. (unlike RWH which is more project-oriented)

Edit2: You are going to feel a bit lost after Haskell Fast & Hard. This is natural. That's why I have you do the NICTA course. It firms things up.

Edit3: I think RWH is a great reference as well, but the mid-to-late chapters have a bit of an "in media res" thing going on because there are projects being walked through cross-chapter. That said, it has a very nice and simple example of, "pre-monads, ugly code; post-monads, pretty code". RWH also covers topics that you'll care about if you're doing Haskell in production.

Re:GHC 7.8.1 released by mitchty on Wednesday April 09, 2014 @02:53PM (#7561470)
Cool, i'm going to look at that gist for this years "try to learn haskell... again" attempt. :)

I do it every year but hit io monads and my mind continually just has a core dump. Some year I hope to climb everest.

Re:GHC 7.8.1 released by coolsunglasses on Wednesday April 09, 2014 @04:58PM (#7562342)
>I do it every year but hit io monads and my mind continually just has a core dump

Stop doing that. I explicitly say in my gist:

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

IO is not important. It behaves no differently at a basic level than any other monad. Monads themselves are just an interface.

Don't put the knowledge on a pedestal, just keep hacking Haskell. It'll all come with time.

This blog post of mine might lend some intuition for monads (including IO): http://bitemyapp.com/posts/2014-03-24-monads-bind-join-actio...

But don't get stuck. It doesn't matter. Just write Haskell code. The compiler won't let you do anything too crazy anyway.