aboutsummaryrefslogtreecommitdiff
path: root/src/list.gleam
diff options
context:
space:
mode:
Diffstat (limited to 'src/list.gleam')
-rw-r--r--src/list.gleam11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/list.gleam b/src/list.gleam
index 1add1be..2571318 100644
--- a/src/list.gleam
+++ b/src/list.gleam
@@ -65,6 +65,17 @@ pub fn map(list, fun) {
do_map(list, fun, [])
}
+fn do_index_map(list, fun, index, acc) {
+ case list {
+ | [] -> reverse(acc)
+ | [x | xs] -> do_index_map(xs, fun, index + 1, [fun(index, x) | acc])
+ }
+}
+
+pub fn index_map(list, fun) {
+ do_index_map(list, fun, 0, [])
+}
+
fn do_traverse(list, fun, acc) {
case list {
| [] -> Ok(reverse(acc))