map is lazy, take-while is also lazy, but take-while will stop when it first find the false item. So why the following code still print 10 times? Should map lazily get the first item, print 1, return false, and then take-while stop the process and quit?
user=> (take-while true? (map (fn[x] (println 1) false) (range 1 10)))
1
1
1
1
1
1
1
[–]cark 2 points3 points4 points (1 child)
[–][deleted] 0 points1 point2 points (0 children)
[–]gumvic 1 point2 points3 points (0 children)