aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRobert Peterson <robert.peterson@gmail.com>2019-04-18 07:41:38 -0700
committerLouis Pilfold <louis@lpil.uk>2019-04-18 16:16:05 +0100
commit108d01c3efda55d63193f33e29fb878b07313dfc (patch)
tree82750c1490569b6c986803697dd2b9f72d6e3c80 /src
parentf2b09ca44f9448cf351093abdf50f9bb6e411423 (diff)
downloadgleam_stdlib-108d01c3efda55d63193f33e29fb878b07313dfc.tar.gz
gleam_stdlib-108d01c3efda55d63193f33e29fb878b07313dfc.zip
Add list:index_map
Diffstat (limited to 'src')
-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))