[erlang-questions] Additions to lists module
Gleb Peregud
gleber.p@REDACTED
Wed Nov 26 14:46:27 CET 2008
Hi,
Isn't #myTable.field_name enough to determine the position of the
field in record's tuple? Have I understood this correctly?
BR
On 11/26/08, Serge Aleynikov <saleyn@REDACTED> wrote:
> Say you have a mnesia table with a structure being record_info(fields,
> myTable). The pos/2 function would help you find a position of a given
> field in the table.
>
> Mazen Harake wrote:
>> 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
>>>
>>
>>
>
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://www.erlang.org/mailman/listinfo/erlang-questions
>
--
Gleb Peregud
http://gleber.pl/
Every minute is to be grasped.
Time waits for nobody.
-- Inscription on a Zen Gong
More information about the erlang-questions
mailing list