Mauro,<div><br></div><div>Por isso eu escrevi que não havia testado os códigos.</div><div><br></div><div>Se vc quiser testar a função, tente com</div><div><span class="Apple-style-span" style><br></span></div><div><span class="Apple-style-span" style>factorial = function(x){</span><br>
</div><div>   stopifnot(x>=0)<br>   produto=1</div><div>   if (x>1)<br>     for (i in 1:x) produto = i* produto<br>   produto<br>}</div><div><br></div><div>Sobre o stopifnot, leia o manual da função para entender o uso da função.</div>
<div><br></div><div>b<br dir="ltr"><br>On Monday, 27 February 2012, Mauro Sznelwar  wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><u></u>





<div>
<div align="justify"><font face="Arial" color="#0000ff">Estava rodando os scripts e vi 
que o stopifnot(x>=0) se retirado não altera nada. No caso iterativo do 
factorial não funciona se fizer factorial(0)=0, como forçar para 
factorial(0)=1?</font></div>
<div><font face="Arial"></font> </div>
<div><font face="Arial">f2 <- function(x){<br>    
stopifnot(x>=0)<br>    
if(x<=1){<br>        
1<br>    }else{<br>        
x*f2(x-1)<br>    }<br>}<br><br><br>2012/2/26 Mauricio Cardeal 
<</font><a href="javascript:_e({}, 'cvml', 'mcardeal2010@gmail.com');" target="_blank"><font face="Arial">mcardeal2010@gmail.com</font></a><font face="Arial">>:<br>> 
Benilton, por curiosidade testei os códigos e o primeiro funcionou 
certo,<br>> mas o segundo acusou erro:<br>><br>>> factorial = 
function(x){<br>> +   stopifnot(x>=0)<br>> +   
produto=1<br>> +   for (i in 1:x) produto = i* produto<br>> 
+   produto<br>> + }<br>>> factorial(3)<br>> [1] 
6<br>>> f2 = function(x){<br>> +   stopifnot(x>=0)<br>> 
+   If(x<=1){<br>> Erro: '{' inesperado em:<br>> "  
stopifnot(x>=0)<br>>   
If(x<=1){"<br>>>     1<br>> [1] 
1<br>>>   }else{<br>> Erro: '}' inesperado em "  
}"<br>>>     x*f2(x-1)<br>> Erro: objeto 'x' não 
encontrado<br>>>   }<br>> Erro: '}' inesperado em "  
}"<br>>> }<br>> Erro: '}' inesperado em "}"<br>>><br>><br>> 
Mauricio Cardeal<br>><br>> UFBA<br>><br></font></div></div>
</blockquote></div>