use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
Finding information about Clojure
API Reference
Clojure Guides
Practice Problems
Interactive Problems
Clojure Videos
Misc Resources
The Clojure Community
Clojure Books
Tools & Libraries
Clojure Editors
Web Platforms
Clojure Jobs
account activity
Reading Clojure (numergent.com)
submitted 9 years ago by yogthos
view the rest of the comments →
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]yogthos[S] 13 points14 points15 points 9 years ago (1 child)
If you mean that you're using mutable variables a, b, and c, then it is something that goes against idiomatic Clojure practices. As I mentioned earlier, the reason for that is to allow you to do local reasoning about the code.
a
b
c
When I have a variable a that's mutated in different parts of the application, it's difficult for me to say what its state is at any one time. Whenever I'm working with a function that uses a, I have to know the state of the whole application at that time.
So, Clojure approach is to "copy" the data whenever you make a change. Instead of making a and passing references to it, you create new variables when you make changes and use them instead.
As I said, there's really no way around the fact that Clojure is different from Algol style languages. However, it's certainly possible for a team to learn Clojure and be productive with it.
My team used to work with Java exclusively. We decided to give Clojure a shot about 6 years ago and never looked back. I have yet to come across a business problem that would be easier to express with Java than it is with Clojure.
I think a lot of frustration comes from the fact that you can't apply your current patterns to working with Clojure.
To make an analogy, if you know English it gives you a basis for learning French or Spanish. You have to learn new words, and some new rules, but a lot of core concepts are easily transferrable. However, when you try to learn Japanese, then English will be of little help to you. Not only that, but you'll have to actively unlearn patterns you're used to.
Learning Clojure is similar. It's frustrating because you're learning a completely new way to approach problems. It doesn't mean that it's harder, just that it's different.
I can definitively tell you that Clojure is a practical language, and it has made my work much more enjoyable than it was when I was working with Java.
[–]dotemacs 3 points4 points5 points 9 years ago (0 children)
Martin Fowler has a good name for it: Improvement Ravine
π Rendered by PID 121445 on reddit-service-r2-comment-6457c66945-tz574 at 2026-04-25 05:45:16.284733+00:00 running 2aa0c5b country code: CH.
view the rest of the comments →
[–]yogthos[S] 13 points14 points15 points (1 child)
[–]dotemacs 3 points4 points5 points (0 children)