@@ -13,7 +13,7 @@ module StreamDOps where
13 -- (Monad, Int, (+), ($), (.), return, fmap, even, (>), (<=),
13 -- (Monad, Int, (+), ($), (.), return, fmap, even, (>), (<=),
14 -- subtract, undefined, Maybe(..))
14 -- subtract, undefined, Maybe(..))
15import Prelude
15import Prelude
16− (Monad, Int, (+), (.), return, (>),
16+ (Monad, Int, (+), (.), return, (>), even, (<=),
17 Maybe(..))
17 Maybe(..))
19import qualified Streamly.Streams.StreamD as S
19import qualified Streamly.Streams.StreamD as S
@@ -26,14 +26,14 @@ maxValue = value + 1000
26-- Benchmark ops
26-- Benchmark ops
27-------------------------------------------------------------------------------
27-------------------------------------------------------------------------------
30−{-# INLINE scan #-}
29+-- {-# INLINE scan #-}
31{-# INLINE map #-}
30{-# INLINE map #-}
32{-# INLINE filterEven #-}
31{-# INLINE filterEven #-}
33{-# INLINE filterAllOut #-}
32{-# INLINE filterAllOut #-}
34{-# INLINE filterAllIn #-}
33{-# INLINE filterAllIn #-}
35{-# INLINE takeOne #-}
34{-# INLINE takeOne #-}
36{-# INLINE takeAll #-}
35{-# INLINE takeAll #-}
37{-# INLINE takeWhileTrue #-}
37{-# INLINE takeWhileTrue #-}
38{-# INLINE dropAll #-}
38{-# INLINE dropAll #-}
39{-# INLINE dropWhileTrue #-}
39{-# INLINE dropWhileTrue #-}
@@ -42,15 +42,18 @@ maxValue = value + 1000
42{-# INLINE composeAllInFilters #-}
42{-# INLINE composeAllInFilters #-}
43{-# INLINE composeAllOutFilters #-}
43{-# INLINE composeAllOutFilters #-}
44{-# INLINE composeMapAllInFilter #-}
44{-# INLINE composeMapAllInFilter #-}
45−scan, map, filterEven, filterAllOut,
46+map, filterEven, filterAllOut,
46− filterAllIn, takeOne, takeAll, takeWhileTrue, dropAll, dropWhileTrue, zip,
47+ filterAllIn, takeOne, takeAll -- takeWhileTrue, dropAll, dropWhileTrue, zip,
47− concat, composeAllInFilters, composeAllOutFilters,
48+ -- concat, composeAllInFilters, composeAllOutFilters,
48− composeMapAllInFilter
49+ -- composeMapAllInFilter
49 :: Monad m
50 :: Monad m
50 => Stream m Int -> m ()
51 => Stream m Int -> m ()
52{-# INLINE composeMapM #-}
54{-# INLINE composeMapM #-}
53composeMapM :: S.MonadAsync m => Stream m Int -> m ()
55composeMapM :: S.MonadAsync m => Stream m Int -> m ()
55{-# INLINE toList #-}
58{-# INLINE toList #-}
56toList :: Monad m => Stream m Int -> m [Int]
59toList :: Monad m => Stream m Int -> m [Int]
@@ -58,9 +61,6 @@ toList :: Monad m => Stream m Int -> m [Int]
58foldl :: Monad m => Stream m Int -> m Int
61foldl :: Monad m => Stream m Int -> m Int
59{-# INLINE last #-}
62{-# INLINE last #-}
60last :: Monad m => Stream m Int -> m (Maybe Int)
63last :: Monad m => Stream m Int -> m (Maybe Int)
61−{-# INLINE zipAsync #-}
62−zipAsync :: S.MonadAsync m => Stream m Int -> m ()
65{-# INLINE toNull #-}
65{-# INLINE toNull #-}
66{-# INLINE mapM #-}
66{-# INLINE mapM #-}
@@ -98,12 +98,6 @@ sourceFromEnum n = S.enumFromStepN n 1 value
98sourceFromFoldable :: Monad m => Int -> Stream m Int
98sourceFromFoldable :: Monad m => Int -> Stream m Int
99sourceFromFoldable n = S.fromList [n..n+value]
99sourceFromFoldable n = S.fromList [n..n+value]
102−{-# INLINE sourceFromFoldableM #-}
103−sourceFromFoldableM :: (S.IsStream t, S.MonadAsync m) => Int -> t m Int
104−sourceFromFoldableM n = S.fromFoldableM (Prelude.fmap return [n..n+value])
107{-# INLINE source #-}
101{-# INLINE source #-}
108source :: Monad m => Int -> Stream m Int
102source :: Monad m => Int -> Stream m Int
109source n = sourceUnfoldrM n
103source n = sourceUnfoldrM n
@@ -117,11 +111,9 @@ runStream :: Monad m => Stream m a -> m ()
117runStream = S.runStream
111runStream = S.runStream
119toNull = runStream
113toNull = runStream
121toList = S.toList
114toList = S.toList
122foldl = S.foldl' (+) 0
115foldl = S.foldl' (+) 0
123last = S.last
116last = S.last
126-------------------------------------------------------------------------------
118-------------------------------------------------------------------------------
127-- Transformation
119-- Transformation
@@ -131,17 +123,15 @@ last = S.last
131transform :: Monad m => Stream m a -> m ()
123transform :: Monad m => Stream m a -> m ()
132transform = runStream
124transform = runStream
135−scan = transform . S.scanl' (+) 0
126+-- scan = transform . S.scanl' (+) 0
136−map = transform . fmap (+1)
127+map = transform . S.map (+1)
138mapM = transform . S.mapM return
128mapM = transform . S.mapM return
140filterEven = transform . S.filter even
129filterEven = transform . S.filter even
141filterAllOut = transform . S.filter (> maxValue)
130filterAllOut = transform . S.filter (> maxValue)
142filterAllIn = transform . S.filter (<= maxValue)
131filterAllIn = transform . S.filter (<= maxValue)
143takeOne = transform . S.take 1
132takeOne = transform . S.take 1
144takeAll = transform . S.take maxValue
133takeAll = transform . S.take maxValue
145takeWhileTrue = transform . S.takeWhile (<= maxValue)
135takeWhileTrue = transform . S.takeWhile (<= maxValue)
146dropAll = transform . S.drop maxValue
136dropAll = transform . S.drop maxValue
147dropWhileTrue = transform . S.dropWhile (<= maxValue)
137dropWhileTrue = transform . S.dropWhile (<= maxValue)