s funções recursivas são usadas em
A função canônica para demonstrar recursão é a função fatorial (). Eu mesmo tentei uma implementação simples e vim com isso:
factorial <- function(x){
if(x==1)
return( 1)
else
return(x*factorial(x-1))
}
Na minha pesquisa sobre o tópico, parece haver algum debate sobre se é melhor usar recursão ou iteração simples. Eu queria ver como o R o implementa e encontrei uma função fatorial () no pacote gregmisc. Eu pensei em encontrar algo como minha implementação ou uma iteração regular. O que eu achei isso:
> factorial
function (x)
gamma(x + 1)
<environment: namespace:base>
Então, a resposta para minha pergunta sobre se R prefere recursão ou iteração é "nem". Pelo menos nesta implementação. As funções recursivas são evitadas no R por uma boa razão?
Atualizar
ersão @gregmisc:
>ptm <- proc.time()
> factorial(144)
[1] 5.550294e+249
> proc.time() - ptm
user system elapsed
0.001 0.000 0.001
my version:
> factorial(144)
[1] 5.550294e+249
> proc.time() - ptm
user system elapsed
0.002 0.001 0.006