versão preguiçosa do mapM
Suponha que eu esteja recebendo uma lista grande de itens enquanto trabalho com o pedido de veiculação:
as <- getLargeList
Agora estou tentando aplicarfn :: a -> IO b
paraas
:
as <- getLargeList
bs <- mapM fn as
mapM
tem tipomapM :: Monad m => (a -> m b) -> [a] -> m [b]
e é disso que preciso em termos de correspondência de tipos. Mas constrói toda a cadeia na memória até retornar o resultado. Eu estou procurando analógico demapM
, que vai funcionar preguiçosamente, para que eu possa usar chefe debs
enquanto a cauda ainda está construindo.