Skip to content

Commit 1ab8196

Browse files
committed
union fns
1 parent fc9fe2b commit 1ab8196

File tree

1 file changed

+26
-4
lines changed

1 file changed

+26
-4
lines changed

src/Data/Array/NonEmpty.purs

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,6 @@ module Data.Array.NonEmpty
1212
, (..), range
1313
, replicate
1414
, some
15-
-- TODO
16-
-- , many
1715

1816
, length
1917

@@ -73,8 +71,10 @@ module Data.Array.NonEmpty
7371

7472
, nub
7573
, nubBy
76-
-- , union
77-
-- , unionBy
74+
, union
75+
, union'
76+
, unionBy
77+
, unionBy'
7878
, delete
7979
, deleteBy
8080

@@ -404,6 +404,28 @@ nub = unsafeAdapt A.nub
404404
nubBy :: forall a. (a -> a -> Boolean) -> NonEmptyArray a -> NonEmptyArray a
405405
nubBy = unsafeAdapt' A.nubBy
406406

407+
union :: forall a. Eq a => NonEmptyArray a -> NonEmptyArray a -> NonEmptyArray a
408+
union = unionBy (==)
409+
410+
union' :: forall a. Eq a => NonEmptyArray a -> Array a -> NonEmptyArray a
411+
union' = unionBy' (==)
412+
413+
unionBy
414+
:: forall a
415+
. (a -> a -> Boolean)
416+
-> NonEmptyArray a
417+
-> NonEmptyArray a
418+
-> NonEmptyArray a
419+
unionBy eq xs ys = unsafeFromArray $ A.unionBy eq (toArray xs) (toArray ys)
420+
421+
unionBy'
422+
:: forall a
423+
. (a -> a -> Boolean)
424+
-> NonEmptyArray a
425+
-> Array a
426+
-> NonEmptyArray a
427+
unionBy' eq xs = unsafeFromArray <<< A.unionBy eq (toArray xs)
428+
407429
delete :: forall a. Eq a => a -> NonEmptyArray a -> Array a
408430
delete = adaptAny' A.delete
409431

0 commit comments

Comments
 (0)