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
_______________________________________________
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell

Reply via email to