[erlang-questions] Additions to lists module
Mazen Harake
mazen.harake@REDACTED
Wed Nov 26 14:18:05 CET 2008
What is the idea behind pos?
Curious because I have never been in a situation where I need to know
the actual position of an element since I always assume that the order
in a list is always undefined. Perhaps I missed something... do you have
a practical example?
/M
Serge Aleynikov wrote:
> I'd like to propose addition of these two functions to the lists module.
> Very often I find the need for this functionality and feel that it
> belongs to the standard library.
>
> Serge
>
>
>
> %% @spec (List::list(), Ele) -> integer()
> %% @doc Returns the position of `Ele' in the `List'. 0 is returned
> %% when `Ele' is not found.
> %% @end
> pos(List, Ele) ->
> pos(List, Ele, 1).
> pos([Ele | Tail], Ele, Pos) ->
> Pos;
> pos([_ | Tail], Ele, Pos) ->
> pos(Tail, Ele, Pos+1);
> pos([], _Ele, _) ->
> 0.
>
> %% @spec (Pred, Acc, List::list()) -> Acc1
> %% Pred = (Ele, Acc) -> Acc1
> %% @doc A combination of foldl/3 and takewhile/2. Accumulate the result
> %% while the predicate function returns true.
> %% @end
> foldlwhile(Pred, Acc0, [H|T]) ->
> case Pred(H, Acc0) of
> {true, Acc} ->
> foldwhile(Fun, Acc, T);
> {false, Acc} ->
> Acc;
> end;
> foldlwhile(_Pred, Acc, []) ->
> Acc.
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://www.erlang.org/mailman/listinfo/erlang-questions
>
More information about the erlang-questions
mailing list