10 votes

Haskell : Fonction Map sur une liste de listes

Comment mapper une fonction pour opérer sur des listes à l'intérieur d'une liste ? Ce qui suit est juste ce que j'essaie de faire comme exemple, mais je demandais juste comme une question générale. Merci d'avance !

Pour l'instant, j'essaie de faire correspondre une fonction, change, à chaque liste d'une liste (renvoyée par itrCol xs).

evalChange xs = map change $ itrCol xs

où itrCol renvoie une liste de listes, où chaque liste contenue est une colonne.

itrCol xs = [getCol x xs | x <- (take (width xs) (iterate (\x -> (x + 1)*1) 0))]

getCol liste les colonnes en fonction d'une liste d'indices de colonne.

getCol :: Int -> [t] -> [t]

et le changement est :

change []     = []
change [x]    = [x]
change [x,y]  = [x,y]
change (x:y:z:ws) | x == y && y == z = 0 : y*(-1) : 0 : change ws
change (x:xs) =  x : change xs

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X