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