<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2900.3429" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV align=justify><FONT face=Arial color=#0000ff>Obrigado pelo retorno, eu não 
percebe que faltava este if, mas sobre o stopifnot, o que eu notei é que 
retirando e colocando ele não alterava o resultado.</FONT></DIV>
<BLOCKQUOTE 
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
  <DIV style="FONT: 10pt arial"> </DIV>
  <DIV><BR></DIV>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><BR></SPAN></DIV>
  <DIV><SPAN class=Apple-style-span>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="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid"><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></FONT></DIV></DIV></BLOCKQUOTE></DIV></BLOCKQUOTE></BODY></HTML>