У меня есть следующий код, и я ожидал, что он напечатает 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 и вернуть [true,true,true,true]
. Но на самом деле он ничего не печатает и возвращает []
. Это как понять?
(transduce (comp (take-while true?)
(map (fn[x] (println x) true))
conj
[]
(map inc (range 4)))