Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

Meu código, só para participar kkk

defmodule Calculadora do

def tabuada(lista, multiplicador) do
tabuada(lista, multiplicador, 1)
end

def tabuada(lista, _, 11) do
lista
|>Enum.reverse()
|>Enum.each(&IO.puts/1)
end

def tabuada(lista, produto1, produto2) do
resultado = produto1 * produto2
nova_lista = [resultado | lista]
tabuada(nova_lista, produto1, produto2 + 1)
end

end

1 resposta

Oi Guilherme, tudo bem com você?

Obrigada por compartilhar seu código aqui no fórum! É sempre uma boa iniciativa participar e mostrar o que estamos desenvolvendo, porque isso abre espaço para trocas muito ricas com a comunidade.

Seu defmodule Calculadora ficou bem interessante de ler. O uso de recursão com acumulador para montar a lista antes de imprimir é um padrão bastante idiomático em Elixir, e você aplicou de forma bem clara. A separação entre as cláusulas da função tabuada, com o controle pelo produto2 chegando até 11, mostra que você entendeu bem como funciona a recursão com caso base. O uso do Enum.reverse junto com o Enum.each e o IO.puts para exibir o resultado também está bem coerente com o estilo da linguagem.

Uma observação pequena vale a pena destacar: o Enum.each no final retorna o valor de atom ok, então se alguém chamar a função tabuada esperando receber a nova lista como retorno, pode se surpreender. Se a intenção for apenas exibir os valores na tela, o código está funcionando corretamente. Mas se você quiser que a função também devolva os dados para outro contexto, considere separar a responsabilidade de impressão de quem faz a chamada. Isso deixa o código mais flexível, especialmente quando o multiplicador e o produto1 precisam ser reutilizados em outras partes do sistema. Nada que comprometa o funcionamento atual, apenas uma possibilidade de evolução.

Continue compartilhando seus experimentos por aqui. Fico feliz em acompanhar seu progresso.

Bons estudos!

Sucesso

Imagem da comunidade