创建使用传感器

因此,如果没有使用集合调用,Clojure 贴图和滤镜上最常用的函数已被修改为返回换能器(可组合算法转换)。这意味着:

(map inc) 返回一个传感器,(filter odd?) 也是如此

优点:函数可以通过 comp 组成单个函数,这意味着只遍历集合一次。在某些情况下,运行时间节省超过 50%。

定义:

(def composed-fn (comp (map inc) (filter odd?)))

用法:

;; So instead of doing this:
(->> [1 8 3 10 5]
     (map inc)
    (filter odd?))
;; Output [9 11]

;; We do this: 
(into [] composed-fn [1 8 3 10 5])
;; Output: [9 11]