应用于矢量的小型传感器

(let [xf (comp
           (map inc)
           (filter even?))]
  (transduce xf + [1 2 3 4 5 6 7 8 9 10]))
;; => 30

此示例创建一个分配给本地 xf 的传感器,并使用 transduce 将其应用于某些数据。换能器为每个输入添加一个,只返回偶数。

transduce 类似于 reduce,并使用提供的+函数将输入集合折叠为单个值。

这类似于线程最后一个宏,但将输入数据与计算分开。

(->> [1 2 3 4 5 6 7 8 9 10]
     (map inc)
     (filter even?)
     (reduce +))
;; => 30