On Tuesday, January 28, 2003, at 04:35  PM, Mike Brown wrote:
S Woodside wrote:
It's so wonderfully backwards. Whoever thought of a variable that
contains a choose statement? :-)
Backwards, pshaw!
XSLT is a declarative language. You aren't instructing something to 
name a
memory location 'x' and then store value 'y' in it; you're asserting 
that
there is a identical relationship between 'x' and 'y', period. It's 
just like
math.
Advanced math ;-)
In XML, the element/content hiearchy makes expressing such 
relationships a
matter of containment: <x><y/></x>. <y/> can be written as <xsl:foo/> 
because
an XSLT instruction is a type of function; it can be used 
interchangably with
its evaluated result, since f(x)=y: f of x *is* y.
in other words, the instruction, is a function that evaluates when it 
is used.
So I'm curious... which XSLT processors cache and don't lazily evaluate
extension functions? And aren't extension elements, in theory, in the 
same
boat? (If no one knows what I'm talking about, never mind...)
I don't think this counts as lazy evaluation, does it? Lazy implies 
that it could evaluate it early, whereas here, you must evaluate when 
it's used.
simon
k
---
www.simonwoodside.com
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list