Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Sistema de recursão com Elixir

Preciso criar um sistema usando a linguagem de programação Elixir onde o usuário deve digitar um número e o programa deve retornar o primeiro caractere, depois o primeiro+segundo caractere, depois primeiro+segundo+terceiro caractere (leia o "+" como uma concatenação, não como uma soma de fato) e assim por diante até que acabe os caracteres do número. Por exemplo:

Digite um número: 853 8 85 853

OBS: Usando recursão

1 resposta
solução!

Olá, Fernanda

Entendo que você está querendo criar um sistema de recursão com Elixir que concatena os caracteres de um número conforme o usuário o digita. A recursão é uma técnica poderosa que pode ser usada para resolver esse tipo de problema. Aqui está um exemplo de como você pode fazer isso:

defmodule Recursion do
  def print_prefixes(number) do
    number
    |> Integer.to_string()
    |> print_prefixes([])
  end

  defp print_prefixes([], _accumulated), do: :ok
  defp print_prefixes([head | tail], accumulated) do
    new_accumulated = [head | accumulated]
    IO.puts Enum.join(new_accumulated, "")
    print_prefixes(tail, new_accumulated)
  end
end

Nesse código, primeiro transformamos o número em uma string e então chamamos a função privada print_prefixes/2 que vai imprimir cada prefixo do número e chamar a si mesma recursivamente com o restante da string até que não haja mais caracteres.

Para testar, você pode chamar Recursion.print_prefixes(853) no terminal do Elixir.

Espero ter ajudado e bons estudos!