diff options
author | Luci Phillips <104490260+scorpi4n@users.noreply.github.com> | 2024-05-15 17:31:17 -0500 |
---|---|---|
committer | Louis Pilfold <louis@lpil.uk> | 2024-05-20 19:26:45 +0100 |
commit | b1eb2544db9029b783ab280dd7ece087f858194f (patch) | |
tree | 409c318af908717885679c69aff37f1e7f9c4e29 | |
parent | 341edd8afe9f1e88c578a8a34f258b761db4b079 (diff) | |
download | gleam_stdlib-b1eb2544db9029b783ab280dd7ece087f858194f.tar.gz gleam_stdlib-b1eb2544db9029b783ab280dd7ece087f858194f.zip |
Implement and test set.is_disjoint
-rw-r--r-- | src/gleam/set.gleam | 18 | ||||
-rw-r--r-- | test/gleam/set_test.gleam | 8 |
2 files changed, 26 insertions, 0 deletions
diff --git a/src/gleam/set.gleam b/src/gleam/set.gleam index 57c6388..c04ca92 100644 --- a/src/gleam/set.gleam +++ b/src/gleam/set.gleam @@ -307,3 +307,21 @@ pub fn difference( pub fn is_subset(first: Set(member), of second: Set(member)) -> Bool { intersection(of: first, and: second) == first } + +/// Determines if two sets contain no common members +/// +/// ## Examples +/// +/// ```gleam +/// is_disjoint(from_list([1, 2, 3], from_list([4, 5, 6]))) +/// // -> True +/// ``` +/// +/// ```gleam +/// is_disjoint(from_list([1, 2, 3]), from_list([3, 4, 5])) +/// // -> False +/// ``` +/// +pub fn is_disjoint(first: Set(member), from second: Set(member)) -> Bool { + intersection(of: first, and: second) == new() +} diff --git a/test/gleam/set_test.gleam b/test/gleam/set_test.gleam index e9c24ca..f763c5d 100644 --- a/test/gleam/set_test.gleam +++ b/test/gleam/set_test.gleam @@ -121,3 +121,11 @@ pub fn is_subset_test() { set.is_subset(set.from_list([1, 2]), set.from_list([2, 3, 4])) |> should.be_false() } + +pub fn is_disjoint_test() { + set.is_disjoint(set.from_list([1, 2, 3]), set.from_list([4, 5, 6])) + |> should.be_true() + + set.is_disjoint(set.from_list([1, 2]), set.from_list([2, 3, 4])) + |> should.be_false() +} |