[bcn-pm] Resum de Barcelona-pm, vol 85, número 8

Kar 'Obi' Juan wodenmalkav a gmail.com
dij ago 26 13:22:09 PDT 2010


Hola Mongers,

Sobre la función:

sub pascal { [1], -> @p { [0, @p Z+ @p, 0] } ... * }
.say for pascal[^10];

Esta función la escribió anteayer Larry Wall en Rosseta Code:
Es un triangulo de Pascal, aunque ha retocado la salida, ya que si no se 
vuelve incomprensible por no estar formateada la salida ...

El funcionamiento es el siguiente:

El ... es el operador de la serie, que genera listas por la alimentación 
del anterior valor (un array) para generar bloques a su izquierda, hasta 
que alcanza el objetivo de la derecha.
En este caso cualquiera, lo que significa que devuelve una lista infinita.

Por ejemplo si valor anterior era la serie [1, 2, 1],  el bloque de 
código evalúa 0, 1, 2, 1, Z+, 1, 2, 1, 0.

Donde Z es el operador a descubrir, Z+ está emparejado a la suma, es 
decir la adición de los pares que el operador a descubrir ha producido). 
En el ejemplo esto conduce a 0+1, 1+2, 2+1, 1+0 ó al resultado de 1, 3, 
3, 1.

# ([1],
#  [1, 1],
#  [1, 2, 1],
*#  [1, 3, 3, 1],*
#  [1, 4, 6, 4, 1],
#  [1, 5, 10, 10, 5, 1],
#  [1, 6, 15, 20, 15, 6, 1],
#  [1, 7, 21, 35, 35, 21, 7, 1],
#  [1, 8, 28, 56, 70, 56, 28, 8, 1],
#  [1, 9, 36, 84, 126, 126, 84, 36, 9, 1])

Un saludo,
-- 
Kar 'Obi' Juan
http://cjuan.wordpress.com/
*GOTT WEISS ICH WILL KEIN ENGEL SEIN!*

-------------- part següent --------------
Un document HTML ha estat eliminat...
URL: <http://mail.pm.org/pipermail/barcelona-pm/attachments/20100826/11b1de7c/attachment.html>


Més informació sobre la llista de correu Barcelona-pm