Proposal: Add left, right and strict folds to Data.Set, Data.IntMap and Data.IntSet to mimic Data.Map.

Hi, see http://hackage.haskell.org/trac/ghc/ticket/4313. The following text is the description of ticket 4313: This proposal depends on #4278 and #4280. In accordance with a poll on libraries@haskell.org (see point 3 of http://article.gmane.org/gmane.comp.lang.haskell.libraries/13273) I propose to add strict folds to the containers. The Data.Map is getting left, right and strict folds in #4278. This proposal adds left, right and strict folds for Set, IntMap and IntSet. The naming is a bit tricky. The folds in IntMap mimics Map (ie. foldrWithKey, foldlWithKey, foldlWithKey'; fold and foldWithKey are deprecated in favor of foldrWithKey). The folds in Set and IntSet are classic (foldr, foldl, foldl'; the old fold is deprecated in favor of foldr). The repository of the containers package with these patches (and also several others) is at http://fox.auryn.cz/darcs/containers/. The patches are also attached (including #4280).

On Tue, Sep 14, 2010 at 06:32:43PM +0200, Milan Straka wrote:
The naming is a bit tricky. The folds in IntMap mimics Map (ie. foldrWithKey, foldlWithKey, foldlWithKey'; fold and foldWithKey are deprecated in favor of foldrWithKey). The folds in Set and IntSet are classic (foldr, foldl, foldl'; the old fold is deprecated in favor of foldr).
I agree with tibbe on the ticket, that this set of cuntions is inconsistent, and in fact I've just reverted the inconsistent additions to Data.Map too. Perhaps it would be best to wait until the other performance proposals have been sorted out, and then to add functions consistently across the whole of containers? It's too late to get into GHC 7.0 anyway, so there's no rush. Thanks Ian
participants (2)
-
Ian Lynagh
-
Milan Straka