感測器

感測器允許在消耗時控制懶惰。例如,into 如預期的那樣渴望,但是 sequence 會懶洋洋地消耗通過換能器的序列。但是,懶惰保證是不同的。最初將消耗足夠的源來生成元素:

(take 0 (sequence (map #(do (prn '-> %) %)) (range 5)))
;; -> 0
;; => ()

或者確定列表是否為空:

(take 0 (sequence (comp (map #(do (prn '-> %) %)) (remove number?)) (range 5)))
;; -> 0
;; -> 1
;; -> 2
;; -> 3
;; -> 4
;; => ()

這與通常的懶惰序列行為不同:

(take 0 (map #(do (prn '-> %) %) (range 5)))
;; => ()