Hacker News new | past | comments | ask | show | jobs | submit login

I second the call to SICP; it is, admittedly, very hard to deal with not using recursion after reading the first few chapters, but even outside of that, it will change the way you program.

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.




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.


The OP is using Clojure, which is also not purely functional. SICP will be a good choice.




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: