Just to follow up here, jordan and I talked on chat and came to the understanding that Jordan had a misunderstanding with how this operates. The current version has gone in without change.
On 09/26/11 at 11:07pm, Jordan Wilberding wrote: > Comment below: > > On Mon, Sep 26, 2011 at 1:42 PM, Eric Merritt <[email protected]>wrote: > > > --- > > src/ec_lists.erl | 91 > > ++++++++++++++++++++++++++++++++++++++++++++++++----- > > 1 files changed, 82 insertions(+), 9 deletions(-) > > > > diff --git a/src/ec_lists.erl b/src/ec_lists.erl > > index 6f76dcc..b80b700 100644 > > --- a/src/ec_lists.erl > > +++ b/src/ec_lists.erl > > @@ -9,12 +9,31 @@ > > > > %% API > > -export([find/2, > > - fetch/2]). > > + fetch/2, > > + search/2]). > > > > %%%=================================================================== > > %%% API > > %%%=================================================================== > > > > +%% @doc Search each value in the list with the specified > > +%% function. When the function returns a value of {ok, term()} the > > +%% search function stops and returns a tuple of {ok, term(), term()}, > > +%% where the second value is the term returned from the function and > > +%% the third value is the element passed to the function. The purpose > > +%% of this is to allow a list to be searched where some internal state > > +%% is important while the input element is not. > > +-spec search(fun(), list()) -> {ok, Result::term(), Element::term()}. > > +search(Fun, [H|T]) -> > > + case Fun(H) of > > + {ok, Value} -> > > + {ok, Value, H}; > > + not_found -> > > + search(Fun, T) > > + end; > > +search(_, []) -> > > + not_found. > > > > I think this implementation is incorrect from the description. I'd argue, > given the documentation above, someone could realistically think that this > function would be valid for a function and an empty list. While I can't > think of a good example, I don't know why we need to pattern match on the > blank list and assume it is not_found. Could be looking for a blank list for > all we know. > > At the very least, we need to specify in the docs a search on a blank list > is always not_found. > > Thanks! > JW > > -- > You received this message because you are subscribed to the Google Groups > "erlware-dev" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/erlware-dev?hl=en. > -- You received this message because you are subscribed to the Google Groups "erlware-dev" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/erlware-dev?hl=en.
