on master help sign in
Add replicateM to Internal.Data.Stream (#1992)
commit3d6e3cdd9b3676dc31e6794a8d3add37beca5dc1 authorRanjeet Ranjan <ranjeetr@composewell.com> dateThu 20 Oct 2022, 20:15 (4 years ago) parente856425
1 file changed+11−1
core/src/Streamly/Internal/Data/Stream/Generate.hs+11−1
core/src/Streamly/Internal/Data/Stream/Generate.hs+11−1
@@ -29,6 +29,7 @@ module Streamly.Internal.Data.Stream.Generate
2929 , repeat
3030 , repeatM
3131 , replicate
32+ , replicateM
3233
3334 -- * Enumeration
3435 , Enumerable (..)
@@ -88,7 +89,7 @@ import qualified Streamly.Internal.Data.Stream.StreamK.Type as K
8889import qualified Streamly.Internal.Data.Stream.Type as Stream
8990import qualified Streamly.Internal.Data.Stream.Transform as Stream (sequence)
9091
91−import Prelude hiding (iterate, replicate, repeat)
92+import Prelude hiding (iterate, replicate, repeat, take)
9293
9394-- $setup
9495-- >>> :m
@@ -211,6 +212,15 @@ repeatM = Stream.sequence . repeat
211212replicate :: Monad m => Int -> a -> Stream m a
212213replicate n = fromStreamD . D.replicate n
213214
215+-- |
216+-- >>> replicateM n = Stream.sequence . Stream.replicate n
217+--
218+-- Generate a stream by performing a monadic action @n@ times.
219+-- /Pre-release/
220+{-# INLINE_NORMAL replicateM #-}
221+replicateM :: Monad m => Int -> m a -> Stream m a
222+replicateM n = Stream.sequence . replicate n
223+
214224------------------------------------------------------------------------------
215225-- Time Enumeration
216226------------------------------------------------------------------------------