[Home] [By Thread] [By Date] [Recent Entries]


On Tue, Mar 23, 2004 at 07:31:49AM -0800, G. Ken Holman wrote:
> At 2004-03-23 08:38 -0600, Bill Riegel wrote:
> >What to look thru a listOfNodes, and set contents on a variable, foundIt,
> >when I found what I am looking for, then break.
> 
> XSLT does not work this way ... the semantics for an <xsl:for-each> are 
> different than a programmer's "for loop".

To amplify on that a little...

"for-each" can be read as saying, make a sequence in which each element
is the result of a single evaluation of this contained expression for
every matching item.

In functional programming terms it's a mapping from one sequence to
another.

An XSLT engine does not need to evaluate the for-each in any particular
order -- all that matters is that the results are generated in the
appropriate order.  This is similar to a C compiler optimising by
changing expression evaluation order, and is not usually noticeable
unless you start using things with side effects
(e.g. ++j * ++i + --i * --j might or might not do what you expect in C)

I hope this helps.  But it really is a different way of thinking about
things.

Liam

-- 
Liam Quin, W3C XML Activity Lead, http://www.w3.org/People/Quin/
http://www.holoweb.net/~liam/

Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member