On Thu, Mar 17, 2016 at 11:12 AM, gvim <gvi...@gmail.com> wrote: > Better to get a foundation in Javascript, Python/Ruby and Java first then > add Clojure later. >
Disagree. It's easier to go from functional programming to imperative programming than vice versa, so it is better to teach functional programming first. The reason is that imperative programming can be thought of as a small, added layer, an extra mutation capability beyond writing pure functions that can be used judiciously to achieve certain effects. Grounded in functional programming, it's easy to go to imperative programming, because you are *adding* a capability. You can still write pure functions in an imperative language (although the language gives you less support for doing so), so your prior knowledge applies. On the other hand, if you learn imperative programming first, you learn a way of writing code that uses mutation in everything. You develop no awareness of the boundary between the set of things you can compute with and without mutation. From your perspective, everything requires mutation. When you try to make the move to functional programming, you feel completely lost and completely hamstrung, because a capability you imagine is essential for writing any code is now missing. You have to completely relearn how to think about coding, figuring out how to write code without mutation. You are subtracting a capability from your language, which is much, much harder, because all your instincts about how to code no longer apply. -- 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/d/optout.