Re: Designs for XSLT functions (Was: Re: [xsl] RE: syntax sugar for call-template)

Subject: Re: Designs for XSLT functions (Was: Re: [xsl] RE: syntax sugar for call-template)
From: David.Rosenborg@xxxxxxxxxx
Date: Tue, 20 Feb 2001 23:19:05 +0100
Hi Uche,

> > No, it doesn't. However, in languages where you otherwise have
> > side effects (like C) you have to think extra carefully about the
> > evaluation order.
> 
> My exact point is that an exsl:if function as you describe above *does* 
> introduce an order-of-execution side effect.  That is why if an exsl:ternary 
> is debated, I would vote that all arguments must be evaluated regardless of 
> the value of the selector.

Well, now that you have made your own definition of the term "side effect"
your statement holds true. However, I've never come across a defintion
even close to yours before :-)

It's crucial that the conditional operator only evaluates one of it's clauses.
Otherwise you could not use it for recursive functions. Also you would
need that behaviour particulary when one of the claues had a side effect
(using the more common definition :-). This would of course never happen
in core XSLT/XPath but you could easily add a extension function which
had side effects. Besides, this behaviour would be consistent with
conditional constructs in all other languages I know.

Also you would need this if you want to test for the exsistence
of extension functions like in:

function-available ('my:func') ? my:func () : 'some fallback value'

With your suggestion this would possible fail in some implementations
if my:func wasn't present.

Cheers,

</David>

David Rosenborg
Pantor Engineering AB


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread