Subject: RE: [XPath 3.0] Why should I bother specifying the "arity" of a function that I invoke?
From: "Costello, Roger L." <costello@xxxxxxxxx>
Date: Wed, 31 Oct 2012 22:09:51 +0000
|
> concat#3 is an expression that returns a function item.
So is concat#3 equivalent to this partial function application:
concat(?, ?, ?)
If yes, when is one preferred over the other?
/Roger
-----Original Message-----
From: Michael Kay [mailto:mike@xxxxxxxxxxxx]
Sent: Wednesday, October 31, 2012 5:54 PM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: Re: [XPath 3.0] Why should I bother specifying the "arity" of a
function that I invoke?
On 31/10/2012 21:06, Costello, Roger L. wrote:
> Hi Folks,
>
> The XPath 3.0 specification says that when a named function is invoked you
should specify the number of arguments (i.e., the arity):
>
> NamedFunctionRef ::= EQName "#" IntegerLiteral
>
> Here is an example:
>
> concat#3('Section', ': ', 1)
>
> But this works just as well:
>
> concat('Section', ': ', 1)
>
> So why should I bother specifying the arity? Is there a case where I *must*
specify the arity?
>
concat#3 is an expression that returns a function item. You need it if
you are going to store the function item in a variable, pass it to
another function, return it from a function, or do other things that you
can do with run-time values.
You don't need a run-time function item if you know statically what
function to call and if the only thing you want to do is to call the
function.
Michael Kay
Saxonica
|