> you really can’t do FP without automatic currying and the function composition and application operators (. And $) in Haskell
But lambdas are enough to define these operators e.g.
(defn comp [f g] (fn [x] (f (g x)))
(defn ap [f x] (f x))
Operators and currying by default can use useful but it's a syntactic issue rather than a fundamental one.