Re:Ask HN: Thinking in Functional programming
by projectileboy on Monday July 20, 2009 @11:01AM
(#714470)
I agree, strongly. The best imperative Java code I ever wrote was after I worked through exercises in SICP. The book just taught me new ways to think. I'd also recommend "The Little Schemer", for the same reason.
2nd Little Schemer. Cute but hardcore.
I disagree. SICP uses Scheme, which is not a purely functional language. Furthermore, the book doesn't contain that much voodoo, certainly not enough to qualify as a freezing shower.
If you want to learn how to deal with the awkward situations that arise from using a purely functional language, I'd recommend hanging out with the Haskell guys.
SICP is legendary, but for a different reason. Lisp is useful for its simplicity and elegance. Modeling an imperative procedure in the timeless way that Clojure calls for is not necessarily pretty.
Reading SICP is like taking a freezing shower; it's a bit of a shock at first, but afterward everything is crisp and clear. Colors are brighter and love is lovelier after you read SICP.
Ok, maybe it's not gold-and-bunnies good, but it's pretty good, and should help remove your cognitive stumbling block.