Some people might find the example given of functional:
(map (comp (partial g a) f) x)
to be more readable as: (-> g (partial a) (comp f) (map x)) (map (comp (partial g a) f) x)
to be more readable as: (-> g (partial a) (comp f) (map x))https://clojuredocs.org/clojure.core/->
edit: I usually pretty-print it, too:
(-> g ;; input value
(partial a) ;; runs as (partial g a), hands off A
(comp f) ;; runs as (comp A f), hands off B
(map x)) ;; runs as (map B x), this returns a value
or (-> 5
(< 10)) ;; runs as (< 5 10)
=> true
with a little tom-foolery (lambda functions) you can have the incoming value land anywhere in the function's argument list