Re: [GHC] #4261: Add strict version of foldlWithKey to Map

2010-08-29 Thread GHC
#4261: Add strict version of foldlWithKey to Map
-+--
Reporter:  tibbe |   Owner:   
Type:  proposal  |  Status:  new  
Priority:  normal|   Component:  libraries (other)
 Version:|Keywords:   
Testcase:|   Blockedby:   
  Os:  Unknown/Multiple  |Blocking:   
Architecture:  Unknown/Multiple  | Failure:  None/Unknown 
-+--

Comment(by tibbe):

 Discussion here:

 http://www.mail-archive.com/glasgow-haskell-bugs@haskell.org/msg28178.html

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/4261#comment:1
GHC http://www.haskell.org/ghc/
The Glasgow Haskell Compiler
___
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs


Re: [GHC] #4261: Add strict version of foldlWithKey to Map

2010-08-29 Thread GHC
#4261: Add strict version of foldlWithKey to Map
--+-
 Reporter:  tibbe |  Owner:   
 Type:  proposal  | Status:  closed   
 Priority:  normal|  Component:  libraries (other)
  Version:| Resolution:  duplicate
 Keywords:|   Testcase:   
Blockedby:| Os:  Unknown/Multiple 
 Blocking:|   Architecture:  Unknown/Multiple 
  Failure:  None/Unknown  |  
--+-
Changes (by tibbe):

  * status:  new = closed
  * resolution:  = duplicate


-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/4261#comment:2
GHC http://www.haskell.org/ghc/
The Glasgow Haskell Compiler
___
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs


Re: [GHC] #4261: Add strict version of foldlWithKey to Map

2010-08-29 Thread GHC
#4261: Add strict version of foldlWithKey to Map
--+-
 Reporter:  tibbe |  Owner:   
 Type:  proposal  | Status:  closed   
 Priority:  normal|  Component:  libraries (other)
  Version:| Resolution:  duplicate
 Keywords:|   Testcase:   
Blockedby:| Os:  Unknown/Multiple 
 Blocking:|   Architecture:  Unknown/Multiple 
  Failure:  None/Unknown  |  
--+-

Comment(by tibbe):

 Superseded by #4278

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/4261#comment:3
GHC http://www.haskell.org/ghc/
The Glasgow Haskell Compiler
___
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs


[GHC] #4261: Add strict version of foldlWithKey to Map

2010-08-18 Thread GHC
#4261: Add strict version of foldlWithKey to Map
-+--
Reporter:  tibbe |   Owner:   
Type:  proposal  |  Status:  new  
Priority:  normal|   Component:  libraries (other)
 Version:|Keywords:   
Testcase:|   Blockedby:   
  Os:  Unknown/Multiple  |Blocking:   
Architecture:  Unknown/Multiple  | Failure:  None/Unknown 
-+--
 There's currently no strict left (pre-order) fold for `Map`s, making it
 impractical to do simple things like summing all the values in the map.
 The attached patch adds a strict `foldlWithKeys'` function that generates
 optimal core for code like:

 {{{
 module Test (test) where

 import qualified Data.Map as M

 test :: M.Map Int Int - Int
 test m = M.foldlWithKey' (\n k v - n + k + v) 0 m
 }}}

 If we look at the core we see that the `Int` accumulator is unboxed like
 we'd hope:

 {{{
 test_$s$wgo2 :: Data.Map.Map Int Int - Int# - Int#
 test_$s$wgo2 =
   \ (sc_smi :: Data.Map.Map Int Int)
 (sc1_smj :: Int#) -
 case sc_smi of _ {
   Data.Map.Tip - sc1_smj;
   Data.Map.Bin _ kx_ali x_alj l_alk r_all -
 case test_$s$wgo2 l_alk sc1_smj of ww_slW { __DEFAULT -
 case kx_ali of _ { I# y_alD -
 case x_alj of _ { I# y1_XlT -
 test_$s$wgo2
   r_all (+# (+# ww_slW y_alD) y1_XlT)
 }
 }
 }
 }

 $wtest :: Data.Map.Map Int Int - Int#
 $wtest =
   \ (w_slZ :: Data.Map.Map Int Int) -
 test_$s$wgo2 w_slZ 0

 test :: Data.Map.Map Int Int - Int
 test =
   __inline_me (\ (w_slZ :: Data.Map.Map Int Int) -
  case $wtest w_slZ of ww_sm2 { __DEFAULT -
  I# ww_sm2
  })
 }}}

 Discussion deadline: 2 weeks

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/4261
GHC http://www.haskell.org/ghc/
The Glasgow Haskell Compiler
___
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs