Skip to content

Commit 3dd70d9

Browse files
committed
Implement differenceBySorted API
1 parent b2e386a commit 3dd70d9

File tree

3 files changed

+710
-5
lines changed

3 files changed

+710
-5
lines changed

src/Streamly/Internal/Data/Stream/IsStream/Top.hs

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ module Streamly.Internal.Data.Stream.IsStream.Top
3030
, intersectBy
3131
, intersectBySorted
3232
, differenceBy
33-
, mergeDifferenceBy
33+
, differenceBySorted
3434
, unionBy
3535
, mergeUnionBy
3636

@@ -632,11 +632,14 @@ differenceBy eq s1 s2 =
632632
--
633633
-- Space: O(1)
634634
--
635-
-- /Unimplemented/
636-
{-# INLINE mergeDifferenceBy #-}
637-
mergeDifferenceBy :: -- (IsStream t, Monad m) =>
635+
-- /Pre-release/
636+
{-# INLINE differenceBySorted #-}
637+
differenceBySorted :: (IsStream t, MonadIO m) =>
638638
(a -> a -> Ordering) -> t m a -> t m a -> t m a
639-
mergeDifferenceBy _eq _s1 _s2 = undefined
639+
differenceBySorted eq s1 =
640+
IsStream.fromStreamD
641+
. StreamD.differenceBySorted eq (IsStream.toStreamD s1)
642+
. IsStream.toStreamD
640643

641644
-- | This is essentially an append operation that appends all the extra
642645
-- occurrences of elements from the second stream that are not already present

0 commit comments

Comments
 (0)