DEV Community

Diego Novais for Trybe

Posted on • Edited on

Aridade de uma função

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
Enter fullscreen mode Exit fullscreen mode

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)

Collapse
 
eduardoklosowski profile image
Eduardo Klosowski

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.

Collapse
 
dnovais profile image
Diego Novais

Concordo totalmente! Inclusive está dentro do meu backlog de artigos trazer um conteúdo nesse sentido em breve. =D

Collapse
 
eduardoklosowski profile image
Eduardo Klosowski

Aguardando para ler.

Collapse
 
rafaso profile image
Rafael Oliveira

Muito bom, não fazia ideia que isso se chamada de "aridade", mandou bem :)

Collapse
 
dnovais profile image
Diego Novais

Muito obrigado! Fico feliz em saber que esse conteúdo fez sentido para você. =D

Collapse
 
elixir_utfpr profile image
Elixir UTFPR (por Adolfo Neto)

Muito bom! Conhecimento básico mas necessário!