Oi Willian, poderia explicar melhor o que você quis dizer com "Por padrão, Elixir/Erlang implementam Tail Call Optimization, por isso a utilização de recursividade é algo muito comum e encorajada! Inclusive as High Order Functions são implementadas através de recursividade, no final das contas."?
Não preciso escrever minhas funções com TCO? Erlang converte elas para TCO ao compilar?
Boa noite professor, como comentei com você, seria mais ou menos isso mesmo. Erlang enquanto linguagem funcional, tem uma forte base de interpretação de funções recursivas para conseguir entender quando eliminar as ultimas chamadas (jumps) de suas execuções.
Com isso, geralmente funções recursivas irão ocupar o mesmo tanto de memória que uma função com TCO. O que elimina o problema citado no texto, de estourar a pilha de chamadas.
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
Oi Willian, poderia explicar melhor o que você quis dizer com "Por padrão, Elixir/Erlang implementam Tail Call Optimization, por isso a utilização de recursividade é algo muito comum e encorajada! Inclusive as High Order Functions são implementadas através de recursividade, no final das contas."?
Não preciso escrever minhas funções com TCO? Erlang converte elas para TCO ao compilar?
Boa noite professor, como comentei com você, seria mais ou menos isso mesmo. Erlang enquanto linguagem funcional, tem uma forte base de interpretação de funções recursivas para conseguir entender quando eliminar as ultimas chamadas (jumps) de suas execuções.
Com isso, geralmente funções recursivas irão ocupar o mesmo tanto de memória que uma função com TCO. O que elimina o problema citado no texto, de estourar a pilha de chamadas.