【发布时间】:2015-12-12 10:35:20
【问题描述】:
我有以下代码,我希望它在控制台上打印1,2,3,4,并返回[true,true,true,true]。
但它只是返回空,并且不会在控制台上打印任何内容。
逻辑是:它循环(0..3),inc每个元素加1,所以我得到(1..4),然后运行(map (fn[x] (println x) true))它从惰性序列中取1,打印1,然后返回true,然后take-while将结果输出到[true],然后取2的下一个元素,打印2,返回[true,true]等,所以结果应该打印1,2,3,4到控制台,然后返回@ 987654329@。但实际上,它什么也不打印并返回[]。这怎么理解?
(transduce (comp (take-while true?)
(map (fn[x] (println x) true))
conj
[]
(map inc (range 4)))
【问题讨论】:
标签: clojure transducer