Nicely done :D! You&#x27;re the first one to get it right.<p>Yeah, I&#x27;d still argue that the clojure stream api is more readable though ;).<p><pre><code>  (-&gt;&gt; (range)
       (map #(repeat % (odd? %)))
       (apply concat)
       (take 1000)
</code></pre>
The thing is that these additions slowly creep into java, which is great. But you still have to wait for the mercy of the language designers.<p>Clojure is so flexible that it is possible to bring these things in as libraries, resulting in a very lightweight and stable core, and a very rapidly evolving ecosystem.<p>Also the persistent data-structures of Clojure make life so much easier. It&#x27;s basically a language build around persistent maps and arrays.