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?
>

Reply via email to