I think clojure has that; I could be wrong, though, I've never used clojure.
(->) inserts each form's value between the function name & the first argument in the next form.
(->>) inserts each form's value as the last argument in the next form.
The latter forms are much more niche and I haven't found need for them yet.
cond-> is great for building maps where some keys might not be needed:
(cond-> {:k1 v1}
v2 (assoc :k2 v2)
...)
some-> and some->> I don't use as often, but when mixing in some java code that could throw an NPE, these will avoid that and just return nil early (they short-circuit when getting a nil value). @(-> ctx
:hypercrud.browser/fiddle
(reactive/cursor [:fiddle/ident])
(->> (reactive/fmap name)))
another (-> [10 11]
(conj 12)
(as-> xs (map - xs [3 2 1]))
(reverse))CLJ:(->)/BS(|.)/RML(->) called Fast Pipe.
CLJ:(->>)/BS(|>)/RML(|>) called Pipe.
plus some nifty placeholders for other positions:
https://reasonml.github.io/docs/en/fast-pipe#pipe-placeholde...
It is totally possible to write custom -> macro that works correctly as used in my example.