I have felt your pain. I started life with Smalltalk and more or less spent the last 15 years in Java. When I started Clojure, it was very hard to break my thinking habits. Particularly, I was lost without manifest typing. I didn't realize how much types documented my system and allowed very lazy thinking on my part. I had less trouble with immutability as I had developed the habit of coding immutable objects in Java.
I started dabbling in Clojure about a year ago and started coding a serious project about 3 months ago. Only recently have I gotten used to thinking about mapping functions over data as opposed to looping through a collection although I still find myself coding loop/recur and then realizing I could use map. I've also developed very different work habits due to the REPL. In my own case, the particular changes in my thinking that have really aided me are: 1. Being able to visualize the data structure that a function is operating on 2. I find that my code falls into two categories: computing new data or transforming data structures 3. Never try to compute new data and transform data at the same time 4. Much of the time computing new data is either map or reduce. Understanding these two (especially the flexibility of reduce) is huge 5. 80% of the time that I want to transform data, postwalk is the answer I'm sure that as I get to know the Clojure libraries better, the specifics around #4 and #5 will change but I bet the first three are pretty constant. On Tuesday, January 14, 2014 11:01:14 AM UTC-8, g vim wrote: > > I recently took the plunge into learning Clojure and love it. Since I > tend to be single-minded/all-or-nothing about these things I'm now > finding it very difficult to switch mindset when I have to work with > Ruby. Anyone else experienced this? If you get deeply into a programming > language it alters the way you think and approach design/solutions which > is one reason I've never understood the advice to try to learn many > programming languages. With Clojure the functional/Lisp structure is so > radically different and elegant that switching to standard OO/mutable > state/infix approaches starts to feel alien. Maybe it's just me. > > gvim > -- -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.