zipwith type switch foldr data haskell mapping

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)