Subject: RE: [xsl] XSLT 2.0: Are arguments to functions evaluated eagerly or lazily? From: Justin Johansson <procode@xxxxxxxxxx> Date: Wed, 18 Jul 2007 19:30:13 +0900 |
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
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] XSLT 2.0: Are arguments t, Michael Kay | Thread | RE: [xsl] XSLT 2.0: Are arguments t, Owen Rees |
Re: [xsl] XSLT 1.0 & XSLT 2.0: Mark, Justin Johansson | Date | RE: [xsl] XSLT 2.0: Saxon et. al.: , Justin Johansson |
Month |