versión perezosa de mapM
Supongamos que estoy obteniendo una gran lista de artículos mientras trabajo con IO:
as <- getLargeList
Ahora, estoy tratando de aplicarfn :: a -> IO b
sobreas
:
as <- getLargeList
bs <- mapM fn as
mapM
tiene tipomapM :: Monad m => (a -> m b) -> [a] -> m [b]
, y eso es lo que necesito en términos de coincidencia de tipos. Pero construye toda la cadena en la memoria hasta devolver el resultado. Estoy buscando análogo demapM
, que funcionará perezosamente, para que pueda usar jefe debs
mientras la cola sigue construyendo.