建立使用感測器

因此,如果沒有使用集合呼叫,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]