From 94f313464380b3293d44314eaeb6e3ddd2b969bf Mon Sep 17 00:00:00 2001 From: Harendra Kumar Date: Tue, 27 Dec 2022 10:43:30 +0530 Subject: [PATCH] Change the argument order of put/modifyIndex --- .../Streamly/Benchmark/Data/Array/Mut.hs | 2 +- .../Streamly/Internal/Data/Array/Mut/Type.hs | 38 +++++++++---------- core/src/Streamly/Internal/Data/Fold.hs | 2 +- .../Internal/Data/Stream/Container.hs | 2 +- test/Streamly/Test/Data/Array.hs | 2 +- 5 files changed, 23 insertions(+), 23 deletions(-) diff --git a/benchmark/Streamly/Benchmark/Data/Array/Mut.hs b/benchmark/Streamly/Benchmark/Data/Array/Mut.hs index 4b8e841c..1e3f20d8 100644 --- a/benchmark/Streamly/Benchmark/Data/Array/Mut.hs +++ b/benchmark/Streamly/Benchmark/Data/Array/Mut.hs @@ -266,7 +266,7 @@ o_1_space_serial_marray value ~(array, indices) = , benchIO' "strip (> 0)" (const (return array)) $ MArray.strip (> 0) , benchIO' "modifyIndices (+ 1)" (const (return indices)) - $ Stream.fold (MArray.modifyIndices (\_idx val -> val + 1) array) + $ Stream.fold (MArray.modifyIndices array (\_idx val -> val + 1)) . Stream.unfold Array.reader ] diff --git a/core/src/Streamly/Internal/Data/Array/Mut/Type.hs b/core/src/Streamly/Internal/Data/Array/Mut/Type.hs index 680edae4..2e146e38 100644 --- a/core/src/Streamly/Internal/Data/Array/Mut/Type.hs +++ b/core/src/Streamly/Internal/Data/Array/Mut/Type.hs @@ -477,8 +477,8 @@ withNewArrayUnsafe count f = do -- /Pre-release/ {-# INLINE putIndexUnsafe #-} putIndexUnsafe :: forall m a. (MonadIO m, Unbox a) - => Int -> a -> Array a -> m () -putIndexUnsafe i x Array{..} = do + => Int -> Array a -> a -> m () +putIndexUnsafe i Array{..} x = do let index = INDEX_OF(arrStart, i, a) assert (i >= 0 && INDEX_VALID(index, arrEnd, a)) (return ()) liftIO $ pokeWith arrContents index x @@ -490,13 +490,13 @@ invalidIndex label i = -- | /O(1)/ Write the given element at the given index in the array. -- Performs in-place mutation of the array. -- --- >>> putIndex arr ix val = Array.modifyIndex ix (const (val, ())) arr +-- >>> putIndex ix arr val = Array.modifyIndex ix arr (const (val, ())) -- >>> f = Array.putIndices --- >>> putIndex ix val arr = Stream.fold (f arr) (Stream.fromPure (ix, val)) +-- >>> putIndex ix arr val = Stream.fold (f arr) (Stream.fromPure (ix, val)) -- {-# INLINE putIndex #-} -putIndex :: forall m a. (MonadIO m, Unbox a) => Int -> a -> Array a -> m () -putIndex i x Array{..} = do +putIndex :: forall m a. (MonadIO m, Unbox a) => Int -> Array a -> a -> m () +putIndex i Array{..} x = do let index = INDEX_OF(arrStart,i,a) if i >= 0 && INDEX_VALID(index,arrEnd,a) then liftIO $ pokeWith arrContents index x @@ -513,14 +513,14 @@ putIndices arr = FL.foldlM' step (return ()) where - step () (i, x) = liftIO (putIndex i x arr) + step () (i, x) = liftIO (putIndex i arr x) -- | Modify a given index of an array using a modifier function. -- -- /Pre-release/ modifyIndexUnsafe :: forall m a b. (MonadIO m, Unbox a) => - Int -> (a -> (a, b)) -> Array a -> m b -modifyIndexUnsafe i f Array{..} = liftIO $ do + Int -> Array a -> (a -> (a, b)) -> m b +modifyIndexUnsafe i Array{..} f = liftIO $ do let index = INDEX_OF(arrStart,i,a) assert (i >= 0 && INDEX_NEXT(index,a) <= arrEnd) (return ()) r <- peekWith arrContents index @@ -532,8 +532,8 @@ modifyIndexUnsafe i f Array{..} = liftIO $ do -- -- /Pre-release/ modifyIndex :: forall m a b. (MonadIO m, Unbox a) => - Int -> (a -> (a, b)) -> Array a -> m b -modifyIndex i f Array{..} = do + Int -> Array a -> (a -> (a, b)) -> m b +modifyIndex i Array{..} f = do let index = INDEX_OF(arrStart,i,a) if i >= 0 && INDEX_VALID(index,arrEnd,a) then liftIO $ do @@ -549,8 +549,8 @@ modifyIndex i f Array{..} = do -- /Pre-release/ {-# INLINE modifyIndices #-} modifyIndices :: forall m a . (MonadIO m, Unbox a) - => (Int -> a -> a) -> Array a -> Fold m Int () -modifyIndices f arr = FL.foldlM' step initial + => Array a -> (Int -> a -> a) -> Fold m Int () +modifyIndices arr f = FL.foldlM' step initial where @@ -558,14 +558,14 @@ modifyIndices f arr = FL.foldlM' step initial step () i = let f1 x = (f i x, ()) - in modifyIndex i f1 arr + in modifyIndex i arr f1 -- | Modify each element of an array using the supplied modifier function. -- -- /Pre-release/ modify :: forall m a. (MonadIO m, Unbox a) - => (a -> a) -> Array a -> m () -modify f Array{..} = liftIO $ + => Array a -> (a -> a) -> m () +modify Array{..} f = liftIO $ go arrStart where @@ -2341,7 +2341,7 @@ bubble cmp0 arr = x1 <- getIndexUnsafe i arr case x `cmp0` x1 of LT -> do - putIndexUnsafe (i + 1) x1 arr + putIndexUnsafe (i + 1) arr x1 go x (i - 1) - _ -> putIndexUnsafe (i + 1) x arr - else putIndexUnsafe (i + 1) x arr + _ -> putIndexUnsafe (i + 1) arr x + else putIndexUnsafe (i + 1) arr x diff --git a/core/src/Streamly/Internal/Data/Fold.hs b/core/src/Streamly/Internal/Data/Fold.hs index e308c389..c020dff6 100644 --- a/core/src/Streamly/Internal/Data/Fold.hs +++ b/core/src/Streamly/Internal/Data/Fold.hs @@ -2462,7 +2462,7 @@ bottomBy cmp n = Fold step initial extract x1 <- MA.getIndexUnsafe (i - 1) arr case x `cmp` x1 of LT -> do - MA.putIndexUnsafe (i - 1) x arr + MA.putIndexUnsafe (i - 1) arr x MA.bubble cmp arr return $ Partial (arr, i) _ -> return $ Partial (arr, i) diff --git a/core/src/Streamly/Internal/Data/Stream/Container.hs b/core/src/Streamly/Internal/Data/Stream/Container.hs index a655a6c6..cabd2b74 100644 --- a/core/src/Streamly/Internal/Data/Stream/Container.hs +++ b/core/src/Streamly/Internal/Data/Stream/Container.hs @@ -245,7 +245,7 @@ joinOuterGeneric eq s1 s = if a `eq` b1 then do CrossStream (Stream.fromEffect $ put True) - MA.putIndex i True foundArr + MA.putIndex i foundArr True return (Just a, Just b1) else CrossStream Stream.nil Nothing -> return (Just a, Nothing) diff --git a/test/Streamly/Test/Data/Array.hs b/test/Streamly/Test/Data/Array.hs index 85faefbc..7c49730d 100644 --- a/test/Streamly/Test/Data/Array.hs +++ b/test/Streamly/Test/Data/Array.hs @@ -59,7 +59,7 @@ testLengthFromStream = genericTestFrom (const A.fromStream) unsafeWriteIndex :: [Int] -> Int -> Int -> IO Bool unsafeWriteIndex xs i x = do arr <- MA.fromList xs - MA.putIndexUnsafe i x arr + MA.putIndexUnsafe i arr x x1 <- MA.getIndexUnsafe i arr return $ x1 == x