[erlang-questions] lists:keyfind as an alternative to lists:keysearch

Bjorn Gustavsson <>
Wed Feb 4 11:10:50 CET 2009


On Tue, Jan 20, 2009 at 4:15 PM, James Hague <> wrote:
>
> I would like to propose the addition of lists:keyfind/3, which is
> identical in structure to lists:keysearch/3, except that it returns
> either 'false' or the found tuple, with no additional wrapping of the
> result.  This can be trivially added to the lists module:
>
>   keyfind(K, N, L) ->
>      case keysearch(K, N, L) of
>         {_, Tuple} -> Tuple;
>         X -> X
>      end.
>
> But ideally it would be a BIF (like lists:keysearch) to avoid
> construction of the tagged tuple.  At the moment, association lists
> and the "key" functions are one of the best alternatives to
> lightweight dictionaries.  With this proposed change, they'd be even
> lighter weight and simpler to use.

We have decided to implement lists:keyfind/3 as a BIF in R13.
Its behavior will be exactly as suggested.

/Bjorn

-- 
Björn Gustavsson, Erlang/OTP, Ericsson AB



More information about the erlang-questions mailing list