john.watson (13) [Avatar] Offline
I'm determined to learn functional programming. I've now tried to work through the majority of the book and I thought perhaps it might be useful to say where I succeeded and where I struggled.

I really enjoyed the introductory section which I found challenging. But mostly, I could make a fair attempt at the answers (after a good deal of thought). I liked the terseness.

I found the most approachable part of the functional design section was the chapter on parser combinators (I have written lex and yacc based parsers in the past). But I only managed to get half-way through the chapters on testing and parallelism. I found the difference in style a little hard to get used to - my attempted solutions differed considerably from those in the answers, so it meant I usually had to give up on my attempts and look up and digest the solutions to make sure I kept on track.

I was happier with the design patterns section (having read 'learn you a haskell' beforehand), but still found the end of the applicatives section too hard to get to grips with properly.

In the final section, I am completely lost at the moment with the chapter on stream processing. When I get stuck I usually try to run little test programs in the REPL that exercise the bits I'm struggling with, but both here and in the Testing section, my test programs would crash in ways I haven't yet been able to understand.

I think this is going to be an excellent book but I'm a little disappointed that I'm unable to master it!
bbarrington (25) [Avatar] Offline
Re: v10 overall impressions so far
I too am determined to learn functional programming, but I may run out of time before I'm able. (I mean I may die before I actually get it). smilie

My experience with this book sounds like it mirrors yours fairly closely. I too struggled with the material on testing and parallelism. Sounds like you have hit most, if not all, of the chapters. I have decided to plod through each chapter (in order) before moving on to the next. I'm now plodding along in Ch. 9.

So would you recommend reading 'Learn you a Haskell'? I've been thinking about it, but I was afraid it would prove to be as difficult as the material in this book. I don't need to take on another book that takes this long to work through. smilie

I too am disappointed that I'm struggling so much!
john.watson (13) [Avatar] Offline
Re: v10 overall impressions so far
I'm most definitely a plodder, too. I've spent a lot of time with the book - it haunts me, too, that I may never actually really 'get' it.

I think the sections on monoids, monads and applicatives are presented very clearly in the book, so I'd hope you wouldn't need to read 'Learn you a Haskell' first. Its style is very different - much slower paced and jokey in tone and perhaps more accessible, but has nothing like the depth of coverage.

I've since gone back to the sections on parallelism and testing. I've got through them both and now can't see what caused me so many problems earlier with the parallelism chapter. But I still found the testing chapter very demanding.
oli1003 (9) [Avatar] Offline
Re: v10 overall impressions so far
Very similar experience here.

I went through part 1 very quickly, except chapter 6 (state).

Part 2 is a bit too open-ended for me, often I didn't find the courage to implement the whole library before looking at the solutions.

Part 3 is well explained, I feel that it gave me a good foundation on the different concepts. I've also read "learn you a haskell" and concur that you don't have to read it before part 3 (but if you have time after this book, it's a great read).

I'm currently working my way through chapter 13, which has been the most challenging so far. Often I manage to write the implementations mechanically but without really grokking the big picture, I think you also need time to let the concepts sink in.

I too struggle with this book, but I don't find that disappointing, quite the contrary.
397546 (2) [Avatar] Offline
I have to say my experience is quite similar, I found Part 1 pretty approachable and was generally able to work through stuff without looking at the answers.

I wasn't a fan of the open ended nature of Part 2 the first time around (Although now I think I understand Parallelism and Testing much better)

Originally I tried to skip right through it but I found it may it difficult to do the actual assignments in Part 3.

Definitely glad I've been slogging through the book, but also have gotten frustrated at times.