Re: Add lists:find/2,3

Pedram Nimreezi <[email protected]>
Newsgroups gmane.comp.lang.erlang.patches
Message-ID <CAAaFgHuz5F5N+kE73pi-5sgDsK2JsVCZ+XH4k6=+Grf-dfa=jA@mail.gmail.com>
+1
On Oct 13, 2013 8:44 PM, "Sean Cribbs" <[email protected]> wrote:

> `lists:find/2,3` returns the first element of the passed list for which
> the predicate fun returns `true`. If no elements result in the predicate
> being true, `undefined` (/2) or the given default value (/3) is returned.
>
> ## Why this new feature?
>
> A common task is to select the first element from a list that matches a
> condition, but there is no existing lists function or language feature that
> avoids traversing the entire list, while still returning a "safe" value.
> `lists:find/2,3` codifies the pattern of a tail-recursive search for the
> matching item without resorting to exceptions (used to abort `foreach/2` or
> `foldl/3`) and always returns either the first matching item, or an
> otherwise safe value.
>
> ## Risks / uncertain artifacts
>
> It is unclear the desired order of arguments for the 3-arity version. I
> have made the default value the final argument which is consistent with
> `application:get_env/3` and `proplists:get_value/3`, but most functions in
> lists place the `List` argument last.
>
> ## How did you solve it?
>
> Following the patterns of other functions in the lists module,
> `lists:find/3` tests the predicate function against the head of the list,
> returning the head if the predicate passes, or recursing over the tail if
> it does not.
>
> https://github.com/erlang/otp/pull/102
>
> --
> Sean Cribbs <[email protected]>
> Software Engineer
> Basho Technologies, Inc.
> http://basho.com/
>
> _______________________________________________
> erlang-patches mailing list
> [email protected]
> http://erlang.org/mailman/listinfo/erlang-patches
>
>

_______________________________________________
erlang-patches mailing list
[email protected]
http://erlang.org/mailman/listinfo/erlang-patches
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.