diff options
author | Robert Peterson <robert.peterson@gmail.com> | 2019-04-18 07:41:38 -0700 |
---|---|---|
committer | Louis Pilfold <louis@lpil.uk> | 2019-04-18 16:16:05 +0100 |
commit | 108d01c3efda55d63193f33e29fb878b07313dfc (patch) | |
tree | 82750c1490569b6c986803697dd2b9f72d6e3c80 /src | |
parent | f2b09ca44f9448cf351093abdf50f9bb6e411423 (diff) | |
download | gleam_stdlib-108d01c3efda55d63193f33e29fb878b07313dfc.tar.gz gleam_stdlib-108d01c3efda55d63193f33e29fb878b07313dfc.zip |
Add list:index_map
Diffstat (limited to 'src')
-rw-r--r-- | src/list.gleam | 11 |
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)) |