Como usar o Módulo Tuple em Elixir?

{"Adolfo", "UTFPR", 2008}
{:idade, 25, :peso, 60.5}
{true, [:p, :implies, :q]}
iex> pessoa = {:idade, 25, :peso, 60.5}
{:idade, 25, :peso, 60.5}
iex> {:idade, idade, :peso, peso} = pessoa
{:idade, 25, :peso, 60.5}
iex> idade
25
iex> peso
60.5
  • append(tupla, valor): Insere um elemento no fim de uma tupla.
  • delete_at(tupla, índice): Remove um elemmento de uma tupla.
  • duplicate(dado, tamanho): Cria uma nova tupla.
  • insert_at(tupla, índice, valor): Insere um elemento em uma tupla.
  • to_list(tupla): Converte uma tupla em uma lista.
iex> pessoa = {:idade, 25, :peso, 60.5}
{:idade, 25, :peso, 60.5}
iex> Tuple.append(pessoa, "João")
{:idade, 25, :peso, 60.5, "João"}
iex> Tuple.delete_at(pessoa, 3)
{:idade, 25, :peso}
iex> Tuple.duplicate(:elixir, 5)
{:elixir, :elixir, :elixir, :elixir, :elixir}
iex> Tuple.insert_at(pessoa, 4, "João")
{:idade, 25, :peso, 60.5, "João"}
iex> Tuple.insert_at(pessoa, 3, "João")
{:idade, 25, :peso, "João", 60.5}
iex> Tuple.to_list(pessoa)
[:idade, 25, :peso, 60.5]
  • tuple_size(tupla): retorna o tamanho de uma tupla.
  • elem(tupla, índice): retorna o elemento na posição índice da tupla.
  • put_elem(tupla, índice, valor): coloca o valor na posição dada por índice na tupla.
iex> pessoa = {:idade, 25, :peso, 60.5}
{:idade, 25, :peso, 60.5}
iex> tuple_size(pessoa)
4
iex> elem(pessoa,1)
25
iex> elem(pessoa,0)
:idade
iex> put_elem(pessoa,0, "oi")
{"oi", 25, :peso, 60.5}

--

--

Sou Professor da UTFPR. Aqui publico textos em português. Texto em inglês estão em https://medium.com/@adolfont Twitter: https://twitter.com/adolfont.

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Adolfo Neto

Adolfo Neto

Sou Professor da UTFPR. Aqui publico textos em português. Texto em inglês estão em https://medium.com/@adolfont Twitter: https://twitter.com/adolfont.