Aschii art generator Haskell part1
Publicado por Marcos Mora (1 intervención) el 23/10/2010 16:42:26
buen día! denme la bienvenida a la web y a la programación funcional ;) mi experiencia en programación es C y java. tengo una asignación complicada y os pido ayuda. debo hacer un montón de funciones que generen arte ascii en la consola. uso Hugs podría usar GHC de ser estrictamente necesario. sin mas:
data Lienzo = MkLienzo (Integer, Integer) [[Char]]
primer argumento de MkLienzo es el tamaño del lienzo (alto, ancho), mientras que el segundo corresponde al lienzo per se.
lienzoValido :: Lienzo -> Bool
donde lienzoValido l representa si un lienzo es válido o no. Un lienzo es válido si su estructura es válida (la lista que representa el lienzo tiene el mismo tamaño indicado en el tipo de datos).
esto es solo el principio. no se como empezar aquí. ademas me dicen que que Lienzo debe ser una instancia de la clase Show. y que debo implementar la funcion show yo mismo para mostrar esto por ejemplo:
Lienzo> MkLienzo (3, 3) [[’x’, ’ ’, ’ ’]. [’ ’, ’y’, ’y’], [’x’, ’ ’, ’y’]]
*****
*x *
* yy*
*x y*
*****
no se manejar listas de listas y de verdad la info de haskell yo busco y busco y no consigo de esto. agradezco la ayuda por favor.
data Lienzo = MkLienzo (Integer, Integer) [[Char]]
primer argumento de MkLienzo es el tamaño del lienzo (alto, ancho), mientras que el segundo corresponde al lienzo per se.
lienzoValido :: Lienzo -> Bool
donde lienzoValido l representa si un lienzo es válido o no. Un lienzo es válido si su estructura es válida (la lista que representa el lienzo tiene el mismo tamaño indicado en el tipo de datos).
esto es solo el principio. no se como empezar aquí. ademas me dicen que que Lienzo debe ser una instancia de la clase Show. y que debo implementar la funcion show yo mismo para mostrar esto por ejemplo:
Lienzo> MkLienzo (3, 3) [[’x’, ’ ’, ’ ’]. [’ ’, ’y’, ’y’], [’x’, ’ ’, ’y’]]
*****
*x *
* yy*
*x y*
*****
no se manejar listas de listas y de verdad la info de haskell yo busco y busco y no consigo de esto. agradezco la ayuda por favor.
Valora esta pregunta


0