#2461: add Traversable generalizations of mapAccumL and mapAccumR
-------------------------+--------------------------------------------------
    Reporter:  ross      |       Owner:                
        Type:  proposal  |      Status:  new           
    Priority:  normal    |   Component:  libraries/base
     Version:            |    Severity:  normal        
    Keywords:            |    Testcase:                
Architecture:  Unknown   |          Os:  Unknown       
-------------------------+--------------------------------------------------
 The proposal is to add the following functions to Data.Traversable,
 generalizing the list versions in Data.List:
 {{{
 -- |The 'mapAccumL' function behaves like a combination of 'fmap'
 -- and 'foldl'; it applies a function to each element of a structure,
 -- passing an accumulating parameter from left to right, and returning
 -- a final value of this accumulator together with the new structure.
 mapAccumL :: Traversable t => (a -> b -> (a, c)) -> a -> t b -> (a, t c)

 -- |The 'mapAccumR' function behaves like a combination of 'fmap'
 -- and 'foldr'; it applies a function to each element of a structure,
 -- passing an accumulating parameter from right to left, and returning
 -- a final value of this accumulator together with the new structure.
 mapAccumR :: Traversable t => (a -> b -> (a, c)) -> a -> t b -> (a, t c)
 }}}
 These functions are handy for things like labelling trees, zipping, etc.

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/2461>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Reply via email to