[xquery-talk] How much laziness is permitted?

Florent Georges lists at fgeorges.org
Wed Mar 11 17:59:22 PST 2009

John Snelson wrote:

> try { 1, 2, 3, error() } catch * { "doh!" }

> Typically, lazy evaluation will start returning items from
> expressions one by one as they are requested. So lets say I
> request an item from the expression above, and it gives me
> 1. I do this a couple more times and it gives me 2 and 3.
> Then the next time I request an item, the error() function
> raises an error - and the implementation says "Oh -
> wait a minute! Give me back those answers, I didn't mean
> them - I meant to return 'doh!'.".

  Thanks.  But I still fail to see the exact problem.  If you use the whole sequence, or its 4th item, then lazy evaluation is not concerned if I am right.  And if you just use its 1st item (for instance) then an implementation is allowed to NOT report the error if it does not want to (if I am right.)

  Of course, this last rule could me more confusing in case of try/catch.  Is it the issue or still I missed it?


Florent Georges


More information about the talk mailing list