[Perl] recursividad en perl
Gunnar Wolf
gwolf en gwolf.org
Mar Mayo 10 18:23:01 CDT 2005
Max de Mendizábal dijo [Mon, May 09, 2005 at 01:43:35PM -0500]:
> 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";
No nos hace da~no ser un poquito mas cuidadosos de lo a todas luces
necesario :-)
Que pasa si le das, con tu funcion, factorial(-1)? Pues... Nunca vas a
llegar a que $num == 1, por lo cual nunca vas a caer en la condicion
base que llevaria el ciclo a romperse. En estos casos es siempre bueno
comparar con '1 o cualquier cosa inferior', no 1 a secas.
Saludos,
--
Gunnar Wolf - gwolf en gwolf.org - (+52-55)1451-2244 / 5554-9450
PGP key 1024D/8BB527AF 2001-10-23
Fingerprint: 0C79 D2D1 2C4E 9CE4 5973 F800 D80E F35A 8BB5 27AF
Más información sobre la lista de distribución Perl