From c153d1ab16d19724e47cc5c160b60b45cda195d2 Mon Sep 17 00:00:00 2001 From: Doug Tykocki Date: Thu, 28 Dec 2023 09:54:40 -0500 Subject: Add set difference function --- src/gleam/set.gleam | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'src') diff --git a/src/gleam/set.gleam b/src/gleam/set.gleam index 9ffaccd..406d501 100644 --- a/src/gleam/set.gleam +++ b/src/gleam/set.gleam @@ -260,3 +260,20 @@ pub fn intersection( let #(larger, smaller) = order(first, second) take(from: larger, keeping: to_list(smaller)) } + +/// Creates a new set that contains members that are present in the first set +/// but not the second. +/// +/// ## Examples +/// +/// ```gleam +/// > difference(from_list([1, 2]), from_list([2, 3, 4])) |> to_list +/// [1] +/// ``` +/// +pub fn difference( + from first: Set(member), + minus second: Set(member), +) -> Set(member) { + drop(from: first, drop: to_list(second)) +} -- cgit v1.2.3