Recursão tem os seus downsides tambem, deve ser evitado ao maximo especialmente em ambientes com pouca memoria RAM como micro controladores, porque ocupa muito espaço na stack e vcpode ter um stack overflow, tente sempre substituir por for loops, no final vc vai ter uma função mais simples e mais performática
Acho que foi falado na postagem original que ela não é tão boa quanto alguns acham e que deve ser evitada quando for possível e for uma situação que ela não é bem aplicada. E o probelma nem é a questão de memória
O problema dela não é ter pouca memória. Você pode ter vários terabytes e ter problema. Se não tiver otimização de recursão em cauda, e em muitos casos isso não existe, pode estourar a pilha de execução porque cada "iteração" aloca memória, o que não aconteceria em modo iterativo real. Então o tamanho da pilha é que se torna um problema, mesmo com muita memória. O padrão do WIndows costuma ser 1 megabyte para cada thread criada. Mas em algumas tecnologias a criaça~ode novas threads pode ser já menor, e quem está programando pode pudar para qualquer lado. Já vi casos de 4 gigabytes, e dá para ser maior. Mas aumentar o tamanho da stack não é a solução real e definitiva para uso errado da recursão, mesm oque a memória RAM permita.
- Quando ocorre o Stack Overflow?
- O que é uma recursão de cauda?
- Quando usar recursão e quando usar laços?
- O que é um método recursivo?
- Qual é a vantagem de usarmos funções recursivas?
Faz sentido para você?
Espero ter ajudado.
Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente. Para saber quando, me segue nas suas plataformas preferidas. Quase não as uso, não terá infindas notificações (links aqui).
Concordo totalmente @coffeeispower! Recursão não é um mundo colorido e quem utilizar tem que ter completa ciência do que está fazendo para evitar efeitos colaterais, bugs e vários outros possíveis problemas quando não se usa de forma diligente. Muito obrigado pelo comentário!!!