(def vec-to-int (comp #(Integer/parseInt %) (partial apply str)))
Или
(def vec-to-int #(Integer/parseInt (apply str %)))
partial
и comp
обычно не так лаконичны в Clojure, как использование #()
для создания анонимного fn. Лично я бы написал так:
(defn vec-to-int [x] (Integer/parseInt (apply str x)))
Вы можете сделать это с простым def
, но что вы получите, используя def
вместо defn
, правда? Использование def
скрывает тот факт, что вы определяете функцию. defn
также устанавливает для вас дополнительные метаданные (арглисты), которых def
нет.
В любом случае, это более общий способ сделать то, что вы делаете:
(def vec-to-int #(bigint (apply str %)))
И еще более общий:
(def vec-to-int #(read-string (apply str %)))
Зависит от того, хотите ли вы иметь возможность обрабатывать вещи, отличные от целых чисел.