3
$\begingroup$

I am writing a proof, which uses functions that can handle an arbitrary number of parameters like summing, or averaging. In other words, I'm referring to functions like:

$f(x_1, ... x_n) = \sum_i x_i$, or

$f(x_1, ... x_n) = 1/n \sum_i x_i$, or even

$f(x_1, ... x_n) = \sum_i i \cdot x_i$

Clearly, $n$ can be arbitrary and these definitions would still make sense. I'd like to call these functions a name. Is there an existing name for such functions?

As an example, I'd like to be able to say: "Let $f$ be a ______ function that acts on some (or all) of the elements of $S$" (So here $f$ would be any function that accepts any number of elements from $S$ as arguments". What's the right way to word this?

$\endgroup$
10
  • $\begingroup$ The name for the set of variables as a group is often a vector. The function you describe is then simply a function, which takes a vector as an argument. You might use the notation 'f:\mathbb R^n\mapsto \mathbb R' as $f:\Bbb R^n\mapsto \Bbb R$. $\endgroup$
    – abiessu
    Feb 10 '18 at 3:46
  • 1
    $\begingroup$ @CuriousStudent In math? Not really. In computing? Certainly. But there is usually some rather simple structure to such functions in practice, as in your examples. $\endgroup$
    – Ian
    Feb 10 '18 at 3:50
  • 2
    $\begingroup$ In mathematics, it's much more common to describe these functions as taking a single argument, which is a set (or in your third example, a sequence). $\endgroup$
    – user856
    Feb 10 '18 at 3:57
  • 1
    $\begingroup$ In programming languages, such functions are called variadic. $\endgroup$ Feb 10 '18 at 4:30
  • 1
    $\begingroup$ You could use the term aggregating. $\endgroup$ Feb 10 '18 at 5:21
4
$\begingroup$

As hinted by Fabio Somenzi and JonathanZ, in the context of computer science you can call these kind of functions variadic or aggregating.

By the way, you can easily define this kind of function in a mathematically rigorous way. The intuition is that a function $f$ would have an arbitrary arity, i.e. $f$ would accept any number of elements from a set $S$ as arguments. From a rigorous prospective, you can say the domain of $f$ is the set $S^*$ (denoted also by $S^{<\omega}$) of finite sequences of elements of $S$, i.e.

\begin{align} S^* = \bigcup_{n \in \mathbb{N}} \overbrace{S \times \dots \times S}^{n \text{ times } S}. \end{align}

So, for all $n \in \mathbb{N}$, $s_1, \dots, s_n \in S$ iff $(s_1, \dots, s_n) \in S^*$: in other words, $S^*$ contains all and only the tuples of elements of $S$, for every (finite) length.

Strictly speaking, the function $f$ defined in this way is unary (with respect to the domain $S^*$), but it perfectly translates the idea that $f$ has an arbitrary arity (with respect to $S$). How powerful the language of mathematics is!

$\endgroup$
-1
$\begingroup$

The term for the number of arguments a function takes is arity and for arbitrary (but finite) arguments is the somewhat unimaginative n-ary.

$\endgroup$
1
  • 2
    $\begingroup$ "$n$-ary" indicates "has a fixed arity, which is equal to $n$". The word "finitary" is more apt, I think, though that is a word I would always define the first time I used it. $\endgroup$ Feb 10 '18 at 9:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.