| 
 
Subject: Re: Designs for XSLT functions (Was: Re: [xsl] RE: syntax sugar for call-template) From: Joe English <jenglish@xxxxxxxxxxxxx> Date: Tue, 20 Feb 2001 19:06:24 -0800  | 
Uche Ogbuji wrote:
> > > The only thing to consider about this is that it introduces a side effect
> >
> > 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.
The effect Uche is talking about isn't usually called
a "side effect"; it's usually called "strictness"
or "non-strictness".  To work properly, 'exsl:if'
would have to have non-strict semantics, but the most
natural implementation of extension functions uses
strict semantics.
<digression>
A good illustration of strict vs. non-strict semantics is
'AND' vs. 'AND THEN' in Ada.  'AND THEN' is the "short-circuit"
version of the boolean AND operation, analogous to '&&' in C.
Denotationally speaking, both operators have type
(Boolean x Boolean -> Boolean), where (denotationally speaking)
the type 'Boolean' has three possible values: 'True',  'False',
and '_|_'.  'True' and 'False' are the familiar logical values,
and '_|_' is an extra element adjoined to the domain
to represent non-termination and error conditions.
The operators are defined as:
x AND y:
     x\y|  T   F  _|_
    ==================
     T  |  T   F  _|_
     F  |  F   F  _|_
    _|_ | _|_ _|_ _|_
x AND THEN y:
     x\y|  T   F  _|_
    ==================
     T  |  T   F  _|_
     F  |  F   F   F
    _|_ | _|_ _|_ _|_
The difference between the two is that 'False AND THEN y'
is always 'False', but 'False AND y' is '_|_' (i.e., fails
to terminate, raises an error, etc.) if 'y' is '_|_'.
</digression>
> 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.
In other words, strict semantics.  Sounds reasonable.
--Joe English
  jenglish@xxxxxxxxxxxxx
 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
| Current Thread | 
|---|
  | 
| <- Previous | Index | Next -> | 
|---|---|---|
| Re: Designs for XSLT functions (Was, David . Rosenborg | Thread | [xsl] Numbering Grouped Child Eleme, Jake Stevenson | 
| [xsl] Newbie needs xsl, Shailendra Majmundar | Date | Re: The top 10 limitations of XSLT , Clark C. Evans | 
| Month |