The other half of this article, that Clojure code requires less testing, is also interesting. I've noticed the same thing myself. Once the author had specified the problem, I thought of the solution in my head "he's going to map over the epochs, rounding them to dates, and then call merge-with". Scroll down, yep, almost exactly what I had in mind.<p>I don't normally do that in other languages. I attribute a large part of that to the map/filter/reduce paradigm. Functional languages tend to have a much more expressive vocabulary than C/C++/Java. Rather than writing a for loop to filter an array, you just write (filter ...). The language is almost declarative, in that you specify <i>what</i> you want to happen, rather than <i>how</i>.<p>Tests are an important part of developing these days. They should count in pg's assertion that program shortness == power. Needing to write fewer tests to be sure of a program's correctness is an important attribute.