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

Richard Carlsson <>
Wed Jan 21 10:56:13 CET 2009


Bjorn Gustavsson wrote:
> 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.
>>
> 
> Good idea.
> 
> Unless someone has any good reasons agains this suggestion, we will probably
> implement it in R13. (lists:keyfind/3 will be a BIF, and
> lists:keysearch/3 implemented
> in Erlang.)

Only that I always wince at the mixing of 'false' with {...}. Since this
is a new function, I'd prefer 'error' (to pick another atom that is
frequently used in Erlang libraries).

    /Richard


(Singing: "Eric the half-a-bool...")



More information about the erlang-questions mailing list