on master help sign in
Add dropWhileFalse/dropOne
c8aaba3Harendra Kumar
benchmark/Linear.hs+9−5
@@ -115,10 +115,12 @@ main =
115 , benchIO "filter-all-in" (Ops.filterAllIn 1)
115 , benchIO "filter-all-in" (Ops.filterAllIn 1)
116 , benchIO "take-all" (Ops.takeAll 1)
116 , benchIO "take-all" (Ops.takeAll 1)
117 , benchIO "takeWhile-true" (Ops.takeWhileTrue 1)
117 , benchIO "takeWhile-true" (Ops.takeWhileTrue 1)
118− , benchIO "takeWhileM-true" (Ops.takeWhileMTrue 1)
118+ --, benchIO "takeWhileM-true" (Ops.takeWhileMTrue 1)
119+ , benchIO "drop-one" (Ops.dropOne 1)
119 , benchIO "drop-all" (Ops.dropAll 1)
120 , benchIO "drop-all" (Ops.dropAll 1)
120 , benchIO "dropWhile-true" (Ops.dropWhileTrue 1)
121 , benchIO "dropWhile-true" (Ops.dropWhileTrue 1)
121− , benchIO "dropWhileM-true" (Ops.dropWhileMTrue 1)
122+ --, benchIO "dropWhileM-true" (Ops.dropWhileMTrue 1)
123+ , benchIO "dropWhile-false" (Ops.dropWhileFalse 1)
122 ]
124 ]
123 , bgroup "filteringN"
125 , bgroup "filteringN"
124 [ benchIO "filter-even" (Ops.filterEven 4)
126 [ benchIO "filter-even" (Ops.filterEven 4)
@@ -126,10 +128,12 @@ main =
126 , benchIO "filter-all-in" (Ops.filterAllIn 4)
128 , benchIO "filter-all-in" (Ops.filterAllIn 4)
127 , benchIO "take-all" (Ops.takeAll 4)
129 , benchIO "take-all" (Ops.takeAll 4)
128 , benchIO "takeWhile-true" (Ops.takeWhileTrue 4)
130 , benchIO "takeWhile-true" (Ops.takeWhileTrue 4)
129− , benchIO "takeWhileM-true" (Ops.takeWhileMTrue 4)
131+ --, benchIO "takeWhileM-true" (Ops.takeWhileMTrue 4)
132+ , benchIO "drop-one" (Ops.dropOne 4)
130 , benchIO "drop-all" (Ops.dropAll 4)
133 , benchIO "drop-all" (Ops.dropAll 4)
131 , benchIO "dropWhile-true" (Ops.dropWhileTrue 4)
134 , benchIO "dropWhile-true" (Ops.dropWhileTrue 4)
132− , benchIO "dropWhileM-true" (Ops.dropWhileMTrue 4)
135+ --, benchIO "dropWhileM-true" (Ops.dropWhileMTrue 4)
136+ , benchIO "dropWhile-false" (Ops.dropWhileFalse 4)
133 ]
137 ]
134 , benchIO "zip" Ops.zip
138 , benchIO "zip" Ops.zip
135 , benchIO "zipM" Ops.zipM
139 , benchIO "zipM" Ops.zipM
@@ -147,7 +151,7 @@ main =
147 ]
151 ]
148 , bgroup "iterated"
152 , bgroup "iterated"
149 [ benchSrcIO serially "mapM" Ops.iterateMapM
153 [ benchSrcIO serially "mapM" Ops.iterateMapM
150− , benchSrcIO serially "scan" Ops.iterateScan
154+ , benchSrcIO serially "scan(1/100)" Ops.iterateScan
151 , benchSrcIO serially "filterEven" Ops.iterateFilterEven
155 , benchSrcIO serially "filterEven" Ops.iterateFilterEven
152 , benchSrcIO serially "takeAll" Ops.iterateTakeAll
156 , benchSrcIO serially "takeAll" Ops.iterateTakeAll
153 , benchSrcIO serially "dropOne" Ops.iterateDropOne
157 , benchSrcIO serially "dropOne" Ops.iterateDropOne
benchmark/LinearOps.hs+6−2
@@ -242,14 +242,16 @@ composeN' n f =
242{-# INLINE takeAll #-}
242{-# INLINE takeAll #-}
243{-# INLINE takeWhileTrue #-}
243{-# INLINE takeWhileTrue #-}
244{-# INLINE takeWhileMTrue #-}
244{-# INLINE takeWhileMTrue #-}
245+{-# INLINE dropOne #-}
245{-# INLINE dropAll #-}
246{-# INLINE dropAll #-}
246{-# INLINE dropWhileTrue #-}
247{-# INLINE dropWhileTrue #-}
247{-# INLINE dropWhileMTrue #-}
248{-# INLINE dropWhileMTrue #-}
249+{-# INLINE dropWhileFalse #-}
248{-# INLINE findIndices #-}
250{-# INLINE findIndices #-}
249{-# INLINE elemIndices #-}
251{-# INLINE elemIndices #-}
250scan, map, fmap, mapMaybe, filterEven, filterAllOut,
252scan, map, fmap, mapMaybe, filterEven, filterAllOut,
251− filterAllIn, takeOne, takeAll, takeWhileTrue, takeWhileMTrue, dropAll,
253+ filterAllIn, takeOne, takeAll, takeWhileTrue, takeWhileMTrue, dropOne,
252− dropWhileTrue, dropWhileMTrue,
254+ dropAll, dropWhileTrue, dropWhileMTrue, dropWhileFalse,
253 findIndices, elemIndices
255 findIndices, elemIndices
254 :: Monad m
256 :: Monad m
255 => Int -> Stream m Int -> m ()
257 => Int -> Stream m Int -> m ()
@@ -281,9 +283,11 @@ takeOne n = composeN n $ S.take 1
281takeAll n = composeN n $ S.take maxValue
283takeAll n = composeN n $ S.take maxValue
282takeWhileTrue n = composeN n $ S.takeWhile (<= maxValue)
284takeWhileTrue n = composeN n $ S.takeWhile (<= maxValue)
283takeWhileMTrue n = composeN n $ S.takeWhileM (return . (<= maxValue))
285takeWhileMTrue n = composeN n $ S.takeWhileM (return . (<= maxValue))
286+dropOne n = composeN n $ S.drop 1
284dropAll n = composeN n $ S.drop maxValue
287dropAll n = composeN n $ S.drop maxValue
285dropWhileTrue n = composeN n $ S.dropWhile (<= maxValue)
288dropWhileTrue n = composeN n $ S.dropWhile (<= maxValue)
286dropWhileMTrue n = composeN n $ S.dropWhileM (return . (<= maxValue))
289dropWhileMTrue n = composeN n $ S.dropWhileM (return . (<= maxValue))
290+dropWhileFalse n = composeN n $ S.dropWhile (<= 1)
287findIndices n = composeN n $ S.findIndices (== maxValue)
291findIndices n = composeN n $ S.findIndices (== maxValue)
288elemIndices n = composeN n $ S.elemIndices maxValue
292elemIndices n = composeN n $ S.elemIndices maxValue
289
293