Muito simplesmente, o que é otimização de chamada de cauda? Mais especificamente, quais são alguns pequenos trechos de código onde eles podem ser aplicados e onde não, com uma explicação do
Muito simplesmente, o que é otimização de chamada de cauda? Mais especificamente, quais são alguns pequenos trechos de código onde eles podem ser aplicados e onde não, com uma explicação do
Acho que há uma @tailrecanotação para garantir que o compilador otimize uma função recursiva de cauda. Você apenas coloca isso antes da declaração? Também funciona se Scala for usado no modo de script (por exemplo, usando :load <file>em
Dois anos após as otimizações de faz-the-jvm-prevent-tail-call-call , parece haver uma implementação de protótipo e o MLVM listou o recurso como "proto 80%" há algum tempo. Não há interesse ativo da parte da Sun / Oracle em apoiar chamadas finais ou apenas que as chamadas finais estão "[...]...
Eu descobri o comando "time" no Unix hoje e pensei em usá-lo para verificar a diferença nos tempos de execução entre funções recursivas de cauda e recursivas normais em Haskell. Eu escrevi as seguintes funções: --tail recursive fac :: (Integral a) => a -> a fac x = fac' x 1 where fac' 1...