如何在函数集中映射(撰写)多个非集合?

时间:2017-08-13 11:45:57

标签: clojure

我想通过一系列非收集功能传递一个集合。它可以通过多次使用地图来实现。如何更简洁地使用clojure /函数编程惯用法:

(defn my-processor [coll]
  (let [get-text (fn [element] (:text element))
        sanitize (fn [element] (string/trim element))
        to-int (fn [element] (Integer. element))]
    (map to-int (map sanitize (map get-text coll))))) ; <-- this line

(my-processor [{:text "123"} {:text "456"}]) ; => (123 456))

1 个答案:

答案 0 :(得分:5)

那应该有效: (map (comp to-int sanitize get-text) coll)