summaryrefslogtreecommitdiff
path: root/lib/stdlib/src/lists.erl
diff options
context:
space:
mode:
Diffstat (limited to 'lib/stdlib/src/lists.erl')
-rw-r--r--lib/stdlib/src/lists.erl20
1 files changed, 19 insertions, 1 deletions
diff --git a/lib/stdlib/src/lists.erl b/lib/stdlib/src/lists.erl
index f44ed726ca..b82732e0ca 100644
--- a/lib/stdlib/src/lists.erl
+++ b/lib/stdlib/src/lists.erl
@@ -32,7 +32,7 @@
concat/1, flatten/1, flatten/2, flatlength/1,
keydelete/3, keyreplace/4, keytake/3, keystore/4,
keysort/2, keymerge/3, rkeymerge/3, rukeymerge/3,
- ukeysort/2, ukeymerge/3, keymap/3]).
+ ukeysort/2, ukeymerge/3, keymap/3, enumerate/1, enumerate/2]).
-export([merge/3, rmerge/3, sort/2, umerge/3, rumerge/3, usort/2]).
@@ -957,6 +957,24 @@ keymap(Fun, Index, [Tup|Tail]) ->
keymap(Fun, Index, []) when is_integer(Index), Index >= 1,
is_function(Fun, 1) -> [].
+-spec enumerate(List1) -> List2 when
+ List1 :: [T],
+ List2 :: [{Index, T}],
+ Index :: integer(),
+ T :: term().
+enumerate(List1) ->
+ enumerate(1, List1).
+
+-spec enumerate(Index, List1) -> List2 when
+ List1 :: [T],
+ List2 :: [{Index, T}],
+ Index :: integer(),
+ T :: term().
+enumerate(Index, [H|T]) when is_integer(Index) ->
+ [{Index, H}|enumerate(Index + 1, T)];
+enumerate(Index, []) when is_integer(Index) ->
+ [].
+
%%% Suggestion from OTP-2948: sort and merge with Fun.
-spec sort(Fun, List1) -> List2 when