Creating long chains of transformation using the thrush operator looks attractive, but what if you need to see what it’s doing?
Consider the following code:
(-> 1
inc
inc)
Now it’s obvious that this returns 3, and that the intermediate value was 2, but the following code proves it:
(defn thread-println [v prefix]
(doto v (->> (str prefix) println))) (-> 1
inc
(thread-println "Intermediate value was")
inc)
You’d need to write a second function for ->>, sadly.
Technorati Tags: Clojure,Thrush Operator