I got a lot out of reading Parallel and Concurrent Programming in Haskell by Simon Marlow. Purely Functional Data Structures by Chris Okasaki is also quite useful. Haskell wasn't my first pure-ish FP language (I spent a lot of time in Erlang) so for me it was really about wrapping my head around Haskell's non-strict evaluation.

You could also try going through the exercises at http://exercism.io/ - none of the exercises are too challenging but the code review component of the site will keep you honest and will likely help you get closer to writing better Haskell.


On Thu, Mar 20, 2014 at 11:17 AM, bruce li <leilmyxwz@gmail.com> wrote:
Hi, there,
I'm relatively new to Haskell...well... I mean I haven't done anything I believe truely in Haskell. I have gone through materials like Learn You a Haskell for Real Good, Real World Haskell, most chapters in Haskell Wikibook, Write Yourself Scheme in 48 Hours, Algorithms: A Functional Approach and other materials in Haskell Wiki. 

But... what I feel is that I'm not confident while writing Haskell code. Having gone through all those materials with "magic", I always feel I'm writing stupid code and there must be more elegant way... And... what's worse, I feel guilty while using IO monad but I simply cannot avoid it, like when I try to write code generator for a toy compiler, I need to keep state of the registers, which I need IORef... Then I feel its not pure anymore but I don't know how to get around it.

I'm wondering if anyone else shares this kind of feeling and what should I do next? Could anyone suggest any project to get hands on experience with Haskell? 

Another question is that the deeper digging into functional algorithms design (reading the book Pearls of Functional Algorithm Design), the more ignorant I feel. So how do I make up the basics like fold law, list induction etc. Any suggested reading materials?

Well.. I think that's a lot question. Thanks for your patience and your kind help.

_______________________________________________
Beginners mailing list
Beginners@haskell.org
http://www.haskell.org/mailman/listinfo/beginners