Конечно, вам нужно четко указать, какую операцию вы хотите использовать?Я не вижу ни одного разумного способа избежать этого.
В Clojure я бы просто использовал функцию высшего порядка:
(defn sum-with [op]
(fn [coll]
(reduce op coll)))
Тогда вы могли бы сделать:*