Thanks for that Michael.
At 08:41 AM 18/07/2007 +0100, you wrote:
Supposing you have a function that is passed two arguments,
say, a condition argument, test, and an argument, value,
that returns value if test is true and the empty sequence
otherwise, is the value argument evaluated at the time of
calling the function if the test argument is false?
The spec leaves this question open - the implementation can do either.
Yes, Saxon does so (usually!). There are exceptions, for example if the
Yes, well, I would not expect anything less of Saxon :-)
But for this particular case, I can't see that you're achieving any useful
brevity or abstraction by writing select="f:cond(condition, value)" rather
than select="if (condition) then value else ()".
For a moment just now I thought that I must have had a blond moment when
posing my question with that particular example but now I must be having a
blond moment even considering that I may have had a blond moment!
Of the face of it you are correct but the impetus of my question and the
example is due this functional programming kick that I'm on at the moment.
LISP has two such functions 'cond' and 'if' which do the same thing as my
two examples. Now I'm not a LISP programmer and maybe there is no
if-then-else statement in LISP which therefore would make necessity for
said functions. However I can see the usefulness of making such functions
available in a functional programming style of library for XSLT as these
functions could be used as arguments to the Scheme-like functions foldl,
map, filter et. al.
Justin Johansson
Freelance XML / XSLT / XQuery Developer
Australia
procode(at)tpg(dot)com(dot)au
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--