I've been playing on and off with Haskell for decades. Not for big, real-world projects, but I still have plenty of toy programs under my belt.
So it came as something of a shock when I started reading this book to realize that my Haskell skills were just skin deep. There's a whole lot of Haskell behind the day-to-day syntax, and it's stuff that I really should know when writing code.
I thought I understood lazy evaluation and infinite data structures. I didn't. I was confident in my pattern matching skills. That was misplaced. I was never totally happy when it came to type classes, but reading the five puzzles about them has given me a lot more understanding.
The other thing I came to realize is that a lot of these ideas were applicable not just to Haskell, not just to functional programming, but to any of the work we do. Once you see what you can do with something like lazy evaluation, I'm betting you'll be thinking of ways of doing the same kind of thing in TypeScript or Rust.
So, whatever work you're doing, read a sample chapter on our site, and think about adding this book to your background reading pile. I'm on my third pass through it, and I'm still learning new things. And, the book is just filled with fun, funky, and functional puzzles.
If you're interested in the eBook, it's on sale on our site; just use the code LazyEvaluation when you check out for 40% off.
Enjoy!
|