[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] [XPath 3.0] Why should I bother specifying the "arity" of a function that I invoke?


Subject: Re: [xsl] [XPath 3.0] Why should I bother specifying the "arity" of a function that I invoke?
From: Michael Kay <mike@xxxxxxxxxxxx>
Date: Wed, 31 Oct 2012 21:54:13 +0000

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


Current Thread
Keywords