我有以下代码,我希望它在控制台上打印1,2,3,4
,然后返回[true,true,true,true]
。
但它只是返回空,不会在控制台上打印任何内容。
逻辑是:它为(0..3)
,inc
每个元素循环1,所以我得到(1..4)
,然后运行(map (fn[x] (println x) true))
它从懒惰序列中取1, print 1,返回true,take-while
将结果输出到[true]
,然后取下一个2的元素,打印2,返回[true,true]等,这样结果应该打印1 ,2,3,4到控制台,并返回[true,true,true,true]
。但实际上,它没有打印任何内容并返回[]
。怎么理解这个?
(transduce (comp (take-while true?)
(map (fn[x] (println x) true))
conj
[]
(map inc (range 4)))
答案 0 :(得分:4)