type - switch en haskell
Doble mapa en haskell? (2)
Todavía soy un principiante de haskell. ¿Puedo hacer un mapa doble en haskell?
Por ejemplo, si tengo un [[Char]] y quiero convertir cada Char en cada [Char] a minúsculas, ¿hay una manera fácil de hacer esto en lugar de algo como:
exampleF [] = []
exampleF (x:xs) = (map toLower x) : exampleF xs
De hecho, hay un buen patrón aquí:
map :: (a -> b) -> [a] -> [b]
(map.map) :: (a -> b) -> [[a]] -> [[b]]
(map.map.map) :: (a -> b) -> [[[a]]] -> [[[b]]]
y así
Puede pensar en el map f , como transformar una función f :: a -> b en una función en las listas map f :: [a] -> [b] , así que si desea transformarlo más en una función en las listas de listas, solo necesita usar el map nuevamente para obtener el map (map f) :: [[a]] -> [[b]] .
En este caso particular, eso se convierte en:
exampleF = map (map toLower)