Details
-
Type:
Enhancement
-
Status:
Closed
-
Priority:
Major
-
Resolution: Completed
-
Affects Version/s: Release 1.5
-
Fix Version/s: None
-
Component/s: None
-
Labels:None
-
Approval:Not Approved
Description
The function clojure.core/let-> is suboptimal in a few regards:
1. It's name lends you to believe it is "let-like", but it is not - it does not take a binding form, and its arguments are 'backwards'
2. It's docstring doesn't make clear that it is intended for use solely in a threading-macro expression
3. It arbitrarily does not support destructuring, where it easily could.
Possible solutions:
- rename it (e.g. to "bind->") to make clear it is not let-like
- allow destructuring of the 'name' parameter
Google groups discussion: https://groups.google.com/d/topic/clojure/67JQ7xSUOM4/discussion
Has the addition of ->>as been considered? That way you can use it inside a ->> like this:
(->> a (->>as name (...))) (-> a (->as name (...)))The signature would be [name forms init-expr].
(->> a (->>as name (...))) (-> a (->as name (...)))