[Perl] recursividad en perl

Max de Mendizábal max en upn.mx
Lun Mayo 9 13:43:35 CDT 2005


Todos los lenguajes modernos tienen recursión, nada más hay que aprender 
a usarla. Ya Gunnar te contestó varias preguntas, mi versión es la siguiente

#/usr/bin/perl -w

sub factorial
{
         my $num = shift @_ || 0;
         if ($num != 1) {
                 return $num * factorial($num-1);
         }
         1;
}

print factorial(5);
print "\n";

Observa que por ahí dejé un 1; esto quiere decir que, si no se cumple el 
return del if, va a regresar un uno. También observa que prefiero usar 
shift @_ para tomar el parámetro.

Saludos

-------------------------------
Max de Mendizábal
max en upn.mx
Subdirección de Informática
Universidad Pedagógica Nacional


Jorge Alejandro Adell escribió:
> segun mi pequeño script para verificar si perl admite la recursividad,
> vi que no es posible esto. O tambien puede ser que este haciendo algo
> mal.
> Puede ser que perl no admita la recursividad.
> Este fue mi experimento para verificarlo.
> 
> sub factorial
> {
> $num = $_[0] | 0;
> if ( $num != 1)
> {
> $resultado = $num * factorial($num-1);
> }
> }
> 
> print factorial(5);
> 
> Devuelve 0
> 
> _______________________________________________
> Perl mailing list
> Perl en tlali.iztacala.unam.mx
> http://tlali.iztacala.unam.mx/cgi-bin/mailman/listinfo/perl
> 


Más información sobre la lista de distribución Perl