Collecting values from Functors?
Tomasz Zielonka
t.zielonka@students.mimuw.edu.pl
Wed, 4 Jun 2003 20:38:30 +0200
On Wed, Jun 04, 2003 at 11:15:30AM -0700, Hal Daume III wrote:
> > I'm trying to figure if there's any way I can use (say) monads to collect
> > values from a Functor.
> >
> > For example, suppose I have a tree of some values that supports fmap, is
> > there any way I can use the fmap function to collect a list of all the node
> > values?
>
> No, you need a fold to do that.
Or a variant of Functor constructor class that I have proposed some time
ago on comp.lang.functional:
class FunctorM t where
fmapM :: Monad m => (a -> m b) -> (t a -> m (t b))
fmapM_ :: Monad m => (a -> m b) -> (t a -> m ())
fmapM_ f t = fmapM f t >> return ()
instance FunctorM [] where
fmapM = mapM
fmapM_ = mapM_
Best regards,
Tom
--
.signature: Too many levels of symbolic links