diff options
author | Gábor Lehel <illissius@gmail.com> | 2012-10-14 16:23:53 +0200 |
---|---|---|
committer | Ian Lynagh <ian@well-typed.com> | 2012-10-27 16:17:05 +0100 |
commit | 57f65911762147ae20af7e41166597e9f0c34ec8 (patch) | |
tree | 9c1371e038a42ae40e93b7a791520132257419e2 /libraries | |
parent | 6f32757e57ff0d6066e75660677b71afbd465a46 (diff) | |
download | haskell-57f65911762147ae20af7e41166597e9f0c34ec8.tar.gz |
alpha-rename the type signatures of foldl, foldl', and scanl to be consistent with foldr and scanr
Diffstat (limited to 'libraries')
-rw-r--r-- | libraries/base/Data/Foldable.hs | 4 | ||||
-rw-r--r-- | libraries/base/Data/List.hs | 8 | ||||
-rw-r--r-- | libraries/base/GHC/List.lhs | 4 |
3 files changed, 8 insertions, 8 deletions
diff --git a/libraries/base/Data/Foldable.hs b/libraries/base/Data/Foldable.hs index 4449ca9485..afd9afa190 100644 --- a/libraries/base/Data/Foldable.hs +++ b/libraries/base/Data/Foldable.hs @@ -132,14 +132,14 @@ class Foldable t where -- | Left-associative fold of a structure. -- -- @'foldl' f z = 'Prelude.foldl' f z . 'toList'@ - foldl :: (a -> b -> a) -> a -> t b -> a + foldl :: (b -> a -> b) -> b -> t a -> b foldl f z t = appEndo (getDual (foldMap (Dual . Endo . flip f) t)) z -- | Left-associative fold of a structure. -- but with strict application of the operator. -- -- @'foldl' f z = 'List.foldl'' f z . 'toList'@ - foldl' :: (a -> b -> a) -> a -> t b -> a + foldl' :: (b -> a -> b) -> b -> t a -> b foldl' f z0 xs = foldr f' id xs z0 where f' x k z = k $! f z x diff --git a/libraries/base/Data/List.hs b/libraries/base/Data/List.hs index c3d1a842a1..7a05939552 100644 --- a/libraries/base/Data/List.hs +++ b/libraries/base/Data/List.hs @@ -45,8 +45,8 @@ module Data.List -- * Reducing lists (folds) - , foldl -- :: (a -> b -> a) -> a -> [b] -> a - , foldl' -- :: (a -> b -> a) -> a -> [b] -> a + , foldl -- :: (b -> a -> b) -> b -> [a] -> b + , foldl' -- :: (b -> a -> b) -> b -> [a] -> b , foldl1 -- :: (a -> a -> a) -> [a] -> a , foldl1' -- :: (a -> a -> a) -> [a] -> a , foldr -- :: (a -> b -> b) -> b -> [a] -> b @@ -68,7 +68,7 @@ module Data.List -- * Building lists -- ** Scans - , scanl -- :: (a -> b -> a) -> a -> [b] -> [a] + , scanl -- :: (b -> a -> b) -> b -> [a] -> [b] , scanl1 -- :: (a -> a -> a) -> [a] -> [a] , scanr -- :: (a -> b -> b) -> b -> [a] -> [b] , scanr1 -- :: (a -> a -> a) -> [a] -> [a] @@ -1004,7 +1004,7 @@ unfoldr f b = -- ----------------------------------------------------------------------------- -- | A strict version of 'foldl'. -foldl' :: (a -> b -> a) -> a -> [b] -> a +foldl' :: (b -> a -> b) -> b -> [a] -> b #ifdef __GLASGOW_HASKELL__ foldl' f z0 xs0 = lgo z0 xs0 where lgo z [] = z diff --git a/libraries/base/GHC/List.lhs b/libraries/base/GHC/List.lhs index 5dfd1ac0e7..b32cea91bf 100644 --- a/libraries/base/GHC/List.lhs +++ b/libraries/base/GHC/List.lhs @@ -166,7 +166,7 @@ filterFB c p x r | p x = x `c` r -- can be inlined, and then (often) strictness-analysed, -- and hence the classic space leak on foldl (+) 0 xs -foldl :: (a -> b -> a) -> a -> [b] -> a +foldl :: (b -> a -> b) -> b -> [a] -> b foldl f z0 xs0 = lgo z0 xs0 where lgo z [] = z @@ -181,7 +181,7 @@ foldl f z0 xs0 = lgo z0 xs0 -- -- > last (scanl f z xs) == foldl f z xs. -scanl :: (a -> b -> a) -> a -> [b] -> [a] +scanl :: (b -> a -> b) -> b -> [a] -> [b] scanl f q ls = q : (case ls of [] -> [] x:xs -> scanl f (f q x) xs) |