faule version von mapM
Angenommen, ich erhalte während der Arbeit mit IO eine große Liste von Elementen:
as <- getLargeList
Jetzt versuche ich mich zu bewerbenfn :: a -> IO b
auf zuas
:
as <- getLargeList
bs <- mapM fn as
mapM
hat TypmapM :: Monad m => (a -> m b) -> [a] -> m [b]
, und das ist, was ich in Bezug auf die Typanpassung brauche. Aber es baut die gesamte Kette im Speicher auf, bis das Ergebnis zurückgegeben wird. Ich suche analog vonmapM
, was faul arbeiten wird, damit ich den Kopf benutzen kannbs
während sich der Schwanz noch aufbaut.