[R-br] [Dúvida] Uso de linguagem funcional para estatística.

Benilton Carvalho beniltoncarvalho em gmail.com
Domingo Fevereiro 26 20:54:23 BRT 2012


Mauro,

Por isso eu escrevi que não havia testado os códigos.

Se vc quiser testar a função, tente com

factorial = function(x){
   stopifnot(x>=0)
   produto=1
   if (x>1)
     for (i in 1:x) produto = i* produto
   produto
}

Sobre o stopifnot, leia o manual da função para entender o uso da função.

b

On Monday, 27 February 2012, Mauro Sznelwar wrote:

> **
> 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?
>
> f2 <- function(x){
>     stopifnot(x>=0)
>     if(x<=1){
>         1
>     }else{
>         x*f2(x-1)
>     }
> }
>
>
> 2012/2/26 Mauricio Cardeal <mcardeal2010 em gmail.com <javascript:_e({},
> 'cvml', 'mcardeal2010 em gmail.com');>>:
> > Benilton, por curiosidade testei os códigos e o primeiro funcionou certo,
> > mas o segundo acusou erro:
> >
> >> factorial = function(x){
> > +   stopifnot(x>=0)
> > +   produto=1
> > +   for (i in 1:x) produto = i* produto
> > +   produto
> > + }
> >> factorial(3)
> > [1] 6
> >> f2 = function(x){
> > +   stopifnot(x>=0)
> > +   If(x<=1){
> > Erro: '{' inesperado em:
> > "  stopifnot(x>=0)
> >   If(x<=1){"
> >>     1
> > [1] 1
> >>   }else{
> > Erro: '}' inesperado em "  }"
> >>     x*f2(x-1)
> > Erro: objeto 'x' não encontrado
> >>   }
> > Erro: '}' inesperado em "  }"
> >> }
> > Erro: '}' inesperado em "}"
> >>
> >
> > Mauricio Cardeal
> >
> > UFBA
> >
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20120226/c2f45afb/attachment.html>


Mais detalhes sobre a lista de discussão R-br