[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