Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Clojure 如何在集合上映射(组合)函数中的多个非集合?_Clojure - Fatal编程技术网

Clojure 如何在集合上映射(组合)函数中的多个非集合?

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

我想通过一系列非集合函数传递集合。它可以通过多次使用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))]
    (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一起使用。您是对的。真无聊<代码>读取字符串会起作用,但我想这会打开另一罐蠕虫。。。