Clojure 如何在集合上映射(组合)函数中的多个非集合?
我想通过一系列非集合函数传递集合。它可以通过多次使用map来实现。如何以更简洁的方式进行clojure/functional编程:Clojure 如何在集合上映射(组合)函数中的多个非集合?,clojure,Clojure,我想通过一系列非集合函数传递集合。它可以通过多次使用map来实现。如何以更简洁的方式进行clojure/functional编程: (defn my-processor [coll] (let [get-text (fn [element] (:text element)) sanitize (fn [element] (string/trim element)) to-int (fn [element] (Integer. element))] (m
(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
(定义我的处理器[coll]
(让[get text(fn[element](:text element))
消毒(fn[元素](字符串/修剪元素))
to int(fn[element](Integer.element))]
(映射到int(映射清理(映射获取文本coll()())));(123 456))
应该有效:
(map(comp-to-int-sanitize-get-text)coll)
是的,在这里您甚至不需要命名函数:(map#(>%:text-str/trim-Integer/parseInt)coll)
(map(comp-Integer/parseInt-str/trim:text)coll)(def处理器(comp-Integer/parseInt-str/trim:text))(map processor coll)@slipset不,静态Java方法不是Clojure函数,因此您不能将Integer/parseInt
与comp
@NathanDavis一起使用。您是对的。真无聊<代码>读取字符串会起作用,但我想这会打开另一罐蠕虫。。。