Practical examples of use for Clojure's some-> macro
clojure
Solution
`some->` can be used to "auto-guard" a threaded series of processing steps where some part in the chain (especially in the middle) might return `nil` which would cause a logic failure further down the chain.
Particular examples could include threading clojure functions together with java interop where you would need to guard against null pointer exceptions.
Problem
Clojure 1.5 adds new threading macros, including: - `some->` - `some->>` The changelog has this contrived example to illustrate how `some->` works: ``` user=> (defn die [x] (assert false)) #'user/die user=> (-> 1 inc range next next next die) AssertionError Assert failed: false user/die (NO_SOURCE_FILE:65) user=> (some-> 1 inc range next next next die) nil ``` Chatting with other programmers, we found it difficult to think of a good, practical example for `some->`. When have you used `some->` to solve a real-world problem?