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