>
So which is it? Is this syntactic soup an achievement to be proud of or a misfeature to ignore and avoid?Most of those things listed are neither, rather they are pragmatic and intended to improve readability.
* List comprehensions need no justification.
* Literal regex support also needs no justification.
* Syntax quote needs no justification.
* Literal numerics need no justification.
Stuff you might not use:
* pre/post conditions
* gen-class
I hardly consider ns a mini-language any more than I consider any language's import syntax a mini-language but that's me.
So we're left with #() and ->, ->>.
#() is often abused. It's really meant for things like this:
(map #(* % 3) (range 100))
; vs.
(map (fn [x] (* x 3)) (range 100))
It's intended to improve readability when used properly.
This the purpose of -> and ->> as well. People often complain that Lisp code needs to be read inside out.
(+ (* (/ x 2) 3) 5))
; vs.
(-> x (/ 2) (* 3) (+ 5))
Again a readability win, not loss.