O que significa Aridade de uma função (function arity)?
Na matemática a aridade de uma função representa o número de argumentos de uma função.
Na programação não é diferente, a aridade também é representada pelo número de seus parâmetros posicionais.
Quando temos uma função com:
- Nenhum argumento, dizemos que ela possui aridade 0 e pode ser chamada de função Nullary.
- Quando temos apenas 1 argumento na função, dizemos que ela possui aridade 1 e pode ser chamada de função Unary.
- Quando temos apenas 2 argumentos na função, dizemos que ela possui aridade 2 e pode ser chamada de função binary.
- Quando temos apenas 3 argumentos na função, dizemos que ela possui aridade 3 e pode ser chamada de função ternary.
- Acima de 3 argumentos, passamos a chamar as funções de acordo com a quantidade-ary, por exemplo: 4-ary, 5-ary, 6-ary e assim por diante.
Em Elixir por exemplo:
defmodule Example do
def say(), do: "Hey I am here!"
def say(name), do: "Hey #{name}, I am here!"
def say(first_name, last_name), do: "Hey #{first_name} #{last_name}, I am here!"
end
Example.say()
--> "Hey I am here!"
# Arity: say/0
# -------------------
Example.say("Diego")
--> "Hey Diego, I am here!"
# Arity: say/1
# -------------------
Example.say("Diego", "Novais")
--> "Hey Diego Novais, I am here!"
# Arity: say/2
A aridade pode ser representada da seguinte forma: função/aridade.
Como no exemplo do código acima:
- Temos a função inicialmente implementada com aridade 0, ou seja:
say/0
; - Depois com aridade 1, ou seja:
say/1
; - E em seguida com aridade 2, ou seja:
say/2
.
Conclusão
A aridade de uma função é o número de argumentos que uma função deve receber de acordo com sua implementação. Geralmente, é representada pelo nome da função / a sua aridade, como foi descrito no exemplo em Elixir.
Top comments (6)
Esses conceitos mais matemáticos, usados principalmente em linguagens funcionais, são bem interessantes, pena que muitos programadores não dão muito valor a isso.
Concordo totalmente! Inclusive está dentro do meu backlog de artigos trazer um conteúdo nesse sentido em breve. =D
Aguardando para ler.
Muito bom, não fazia ideia que isso se chamada de "aridade", mandou bem :)
Muito obrigado! Fico feliz em saber que esse conteúdo fez sentido para você. =D
Muito bom! Conhecimento básico mas necessário!