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