From 3d40ff82b6e68b89c31f1326cdc3db5a8928a6f7 Mon Sep 17 00:00:00 2001 From: Kayla Washburn Date: Tue, 4 Apr 2023 09:48:23 -0600 Subject: `iterator.each` (#431) --- src/gleam/iterator.gleam | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'src') diff --git a/src/gleam/iterator.gleam b/src/gleam/iterator.gleam index 1486ae3..65e3e29 100644 --- a/src/gleam/iterator.gleam +++ b/src/gleam/iterator.gleam @@ -1417,3 +1417,26 @@ pub fn length(over iterator: Iterator(e)) -> Int { iterator.continuation |> do_length(0) } + +/// Traverse an iterator, calling a function on each element. +/// +/// ## Examples +/// +/// ```gleam +/// > empty() |> each(io.println) +/// Nil +/// ``` +/// +/// ```gleam +/// > from_list(["Tom", "Malory", "Louis"]) |> each(io.println) +/// // -> Tom +/// // -> Malory +/// // -> Louis +/// Nil +/// ``` +/// +pub fn each(over iterator: Iterator(a), with f: fn(a) -> b) -> Nil { + iterator + |> map(f) + |> run +} -- cgit v1.2.3