<div dir="ltr">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.<div>
<br></div><div>You could also try going through the exercises at <a href="http://exercism.io/">http://exercism.io/</a> - 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.</div>
</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Mar 20, 2014 at 11:17 AM, bruce li <span dir="ltr"><<a href="mailto:leilmyxwz@gmail.com" target="_blank">leilmyxwz@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi, there,<div>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. </div>

<div><br></div><div><b>But... what I feel is that I'm not confident while writing Haskell code.</b> 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.</div>

<div><br></div><div>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? </div><div><br></div><div>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?</div>

<div><br></div><div>Well.. I think that's a lot question. Thanks for your patience and your kind help.</div></div>
<br>_______________________________________________<br>
Beginners mailing list<br>
<a href="mailto:Beginners@haskell.org">Beginners@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/beginners" target="_blank">http://www.haskell.org/mailman/listinfo/beginners</a><br>
<br></blockquote></div><br></div>