Página 1 de 1

Practicar en Perl6 sin instalar nada

NotaPublicado: 2010-09-29 14:42 @654
por wladif
En este enlace, pueden probar programas pequeños directamente en su navegador.

http://try.rakudo.org

Como muestra, pueden partir con este código, que calcula el dígito verificador del RUT en Chile.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my $s_Rut = "30686957"; my @a_rut = split '', $s_Rut;
my $n_DV = (11 - [+](@a_rut.reverse <<*>> (2..7))) % 11;
$n_DV.say;
 
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4


Este ejemplo debería dar 4.

El algoritmo lo pueden ver en el siguiente enlace http://tinyurl.com/2973yfs (busquen Cálculo del dígito verificador, Módulo 11)

Re: Practicar en Perl6 sin instalar nada

NotaPublicado: 2010-09-29 15:58 @707
por explorer
Gracias por el aporte, al que solo tengo que decir dos salvedades: aunque, aparentemente y matemáticamente, son iguales, el algoritmo habla primero del cálculo del módulo, y luego del cálculo de la diferencia entre 11 y el resultado del módulo, no al revés. En Perl, el comportamiento del operador módulo es "diferente" según sea los números sean positivos o negativos:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
> say 23 % 11
1
> say -23 % 11
10
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Y segundo, no están contemplados los casos de cuando el resultado de la diferencia es 10 u 11. Según el algoritmo, el resultado debería ser 'K' y '0', respectivamente (según se indica en Rol Único Tributario).

Re: Practicar en Perl6 sin instalar nada

NotaPublicado: 2010-09-30 10:22 @473
por wladif
Bueno, veo que subiste el algoritmo correcto en Wikipedia. Para temas del ejemplo, lo simplifiqué mucho, solo que me faltó agregar ese "detallito" a mi post :)

De todos modos, queda genial para comparar el algoritmo en 4 líneas en Perl6 contra el de 21 líneas en Visual Basic, ¡ja,ja,ja!

Re: Practicar en Perl6 sin instalar nada

NotaPublicado: 2010-09-30 15:39 @694
por explorer
Es obvio que no se pretende escribirlo de forma corta, porque entonces entramos en el área del Perl ofuscado, y eso siempre va en contra de la "fama" de Perl, si no está colocado en el sitio adecuado.

Más bien, intentar que los pasos sean sencillos y claros que anime a los lectores a aprender Perl.

Lo he modificado para dejarlo en poco más de diez líneas, pero aún así queda más bonito que la de Visual Basic :)