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@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
>