1votos

Triangulo de pascal en Haskell

por josejuan hace 6 años

Triángulo infinito.

El triangulo de Pascal consiste en un triangulo de numeros siguiendo las siguientes reglas: - La primera fila es 1 - Cada linea siguiente se calcula sumando los numeros adyacentes de la fila superior y añadiendo un 1 al comienzo y al final de la fila.

1
2
3
4
5
6
7
8
pascal = p [1] where p w = [w] ++ (p$(1:(zipWith(+)w$tail w))++[1]) 
 
 
-- Ejemplos 
 
pascal !! n-ésimo      -- saca la fila n-ésima (base 0) 
 
take n !! pascal       -- construye un triángulo pascal de n filas 
2 comentarios
1votos

Escrito por jalonso hace 6 años

Bonita solución para generar el triángulo completo.

Hay una errata sin importancia: en el segundo ejemplo: sobra !!.

Además, puestos a simplificar, se puede sustituir "[w] ++" por "w:" (cosa que tampoco hice en mi solución) y eliminar paréntesis con lo que la definición quedaría
pascal = p [1] where p w = w:(p$1:(zipWith()w$tail w)+[1])
0votos

Escrito por josejuan hace 6 años

Mecahis la errata, no se pueden editar los códigos aún.

Son pequeños tus cambios, pero me gusta más como la has dejado tú, ¡pónla como solución!, así no se te comerá los "mases" y podemos darte votos.

¡Gracias!

de ésto se aprende, de sacarle punta a los demás X'D

Comenta la solución

Tienes que identificarte para poder publicar tu comentario.