[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Designs for XSLT functions (Was: Re: RE: syntax su
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
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|