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
 
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
 
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
 
elixir_utfpr profile image
Elixir UTFPR (por Adolfo Neto) •

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