It seems 'any' calls 'mapreduce' which calls 'mapfoldl' which has a specialization that will stop computing in the case of searching for a single true or false value. However, it seems the call to mapreduce instead goes to a more specific method that doesn't implement this shortcut. If 'any' were to call mapfoldl directly, it would do the lazy computing.
On Thursday, June 18, 2015 at 11:18:12 AM UTC-4, Seth wrote: > > > > julia> function bar(x) > info("bar $x") > x > end > bar (generic function with 1 method) > > julia> any(v->bar(v), [false, false, true, false, false]) > INFO: bar false > INFO: bar false > INFO: bar true > INFO: bar false > INFO: bar false > true > > Is there a reason the rest of the elements in the collection are evaluated > after the first true is encountered? >