[erlang-questions] Additions to lists module

Peter Lund <>
Wed Nov 26 14:38:47 CET 2008


1> string:str([x,y,s,my_arbitrary_erlang_term], [my_arbitrary_erlang_term]).
4
2>


Serge Aleynikov skrev:
> 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
> 
> http://www.erlang.org/mailman/listinfo/erlang-questions
>
>   




More information about the erlang-questions mailing list