Skip to content

Commit d93b826

Browse files
Change foldM type signature to more closely match foldl (#160)
Co-authored-by: Thomas Honeyman <admin@thomashoneyman.com>
1 parent 6dde641 commit d93b826

File tree

2 files changed

+6
-7
lines changed

2 files changed

+6
-7
lines changed

src/Data/Array.purs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1117,12 +1117,11 @@ unzip xs =
11171117
-- | ```purescript
11181118
-- | foldM (\x y -> Just (x + y)) 0 [1, 4] = Just 5
11191119
-- | ```
1120-
-- |
1121-
foldM :: forall m a b. Monad m => (a -> b -> m a) -> a -> Array b -> m a
1122-
foldM f a = unconsImpl (\_ -> pure a) (\b bs -> f a b >>= \a' -> foldM f a' bs)
1120+
foldM :: forall m a b. Monad m => (b -> a -> m b) -> b -> Array a -> m b
1121+
foldM f b = unconsImpl (\_ -> pure b) (\a as -> f b a >>= \b' -> foldM f b' as)
11231122

1124-
foldRecM :: forall m a b. MonadRec m => (a -> b -> m a) -> a -> Array b -> m a
1125-
foldRecM f a array = tailRecM2 go a 0
1123+
foldRecM :: forall m a b. MonadRec m => (b -> a -> m b) -> b -> Array a -> m b
1124+
foldRecM f b array = tailRecM2 go b 0
11261125
where
11271126
go res i
11281127
| i >= length array = pure (Done res)

src/Data/Array/NonEmpty.purs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -437,10 +437,10 @@ zip xs ys = unsafeFromArray $ toArray xs `A.zip` toArray ys
437437
unzip :: forall a b. NonEmptyArray (Tuple a b) -> Tuple (NonEmptyArray a) (NonEmptyArray b)
438438
unzip = bimap unsafeFromArray unsafeFromArray <<< A.unzip <<< toArray
439439

440-
foldM :: forall m a b. Monad m => (a -> b -> m a) -> a -> NonEmptyArray b -> m a
440+
foldM :: forall m a b. Monad m => (b -> a -> m b) -> b -> NonEmptyArray a -> m b
441441
foldM f acc = adaptAny $ A.foldM f acc
442442

443-
foldRecM :: forall m a b. MonadRec m => (a -> b -> m a) -> a -> NonEmptyArray b -> m a
443+
foldRecM :: forall m a b. MonadRec m => (b -> a -> m b) -> b -> NonEmptyArray a -> m b
444444
foldRecM f acc = adaptAny $ A.foldRecM f acc
445445

446446
unsafeIndex :: forall a. Partial => NonEmptyArray a -> Int -> a

0 commit comments

Comments
 (0)