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)
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
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! Conhecimento básico mas necessário!