Skip to content

Commit 0d3a6fd

Browse files
Shimuuarlehins
andcommitted
Apply suggestions from code review by @lehins
Co-authored-by: Alexey Kuleshevich <lehins@yandex.ru>
1 parent aba6393 commit 0d3a6fd

File tree

1 file changed

+6
-8
lines changed

1 file changed

+6
-8
lines changed

vector/src/Data/Vector/Generic/Mutable.hs

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ module Data.Vector.Generic.Mutable (
7878
PrimMonad, PrimState, RealWorld
7979
) where
8080

81+
import Control.Monad ((<=<))
8182
import Data.Vector.Generic.Mutable.Base
8283
import qualified Data.Vector.Generic.Base as V
8384

@@ -1221,34 +1222,31 @@ partitionWithUnknown f s
12211222
-- @since NEXT_VERSION
12221223
mapInPlace :: (PrimMonad m, MVector v a) => (a -> a) -> v (PrimState m) a -> m ()
12231224
{-# INLINE mapInPlace #-}
1224-
mapInPlace f v
1225-
= stToPrim
1226-
$ forI_ v $ \i -> unsafeWrite v i . f =<< unsafeRead v i
1225+
mapInPlace f = imapInPlace (\_ -> f)
12271226

12281227
-- | Modify vector in place by applying function to each element and its index.
12291228
--
12301229
-- @since NEXT_VERSION
12311230
imapInPlace :: (PrimMonad m, MVector v a) => (Int -> a -> a) -> v (PrimState m) a -> m ()
12321231
{-# INLINE imapInPlace #-}
12331232
imapInPlace f v
1234-
= stToPrim
1235-
$ forI_ v $ \i -> unsafeWrite v i . f i =<< unsafeRead v i
1233+
= stToPrim $ iforM_ v $ \i -> unsafeWrite v i . f i
12361234

12371235
-- | Modify vector in place by applying monadic function to each element in order.
12381236
--
12391237
-- @since NEXT_VERSION
12401238
mapInPlaceM :: (PrimMonad m, MVector v a) => (a -> m a) -> v (PrimState m) a -> m ()
12411239
{-# INLINE mapInPlaceM #-}
1242-
mapInPlaceM f v
1243-
= forI_ v $ \i -> unsafeWrite v i =<< f =<< unsafeRead v i
1240+
mapInPlaceM f
1241+
= imapInPlaceM (\_ -> f)
12441242

12451243
-- | Modify vector in place by applying monadic function to each element and its index in order.
12461244
--
12471245
-- @since NEXT_VERSION
12481246
imapInPlaceM :: (PrimMonad m, MVector v a) => (Int -> a -> m a) -> v (PrimState m) a -> m ()
12491247
{-# INLINE imapInPlaceM #-}
12501248
imapInPlaceM f v
1251-
= forI_ v $ \i -> unsafeWrite v i =<< f i =<< unsafeRead v i
1249+
= iforM_ v $ \i -> unsafeWrite v i <=< f i
12521250

12531251

12541252
-- | Compute the (lexicographically) next permutation of the given vector in-place.

0 commit comments

Comments
 (0)