aboutsummaryrefslogtreecommitdiff
path: root/src/gleam/set.gleam
diff options
context:
space:
mode:
Diffstat (limited to 'src/gleam/set.gleam')
-rw-r--r--src/gleam/set.gleam27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/gleam/set.gleam b/src/gleam/set.gleam
index 5dfc749..a5e3918 100644
--- a/src/gleam/set.gleam
+++ b/src/gleam/set.gleam
@@ -380,3 +380,30 @@ pub fn symmetric_difference(
minus: intersection(of: first, and: second),
)
}
+
+/// Calls a function for each member in a set, discarding the return
+/// value.
+///
+/// Useful for producing a side effect for every item of a set.
+///
+/// ```gleam
+/// import gleam/io
+///
+/// let set = from_list(["apple", "banana", "cherry"])
+///
+/// each(set, io.println)
+/// // -> Nil
+/// // apple
+/// // banana
+/// // cherry
+/// ```
+///
+/// The order of elements in the iteration is an implementation detail that
+/// should not be relied upon.
+///
+pub fn each(set: Set(member), fun: fn(member) -> a) -> Nil {
+ fold(set, Nil, fn(nil, member) {
+ fun(member)
+ nil
+ })
+}