[erlang-questions] [eeps] EEP 9
Fredrik Svahn
fredrik.svahn@REDACTED
Sat Mar 8 10:58:15 CET 2008
Thanks, good suggestion. I will add it.
BR /Fredrik
On Fri, Mar 7, 2008 at 1:41 PM, Serge Aleynikov <saleyn@REDACTED> wrote:
> In addition to what others already have said, this function would be
> helpful:
>
> binary:join(List, Delim) -> binary()
>
> where:
> List = [binary()] | [string()]
> Delim = binary() | string()
>
> Examples:
> > binary:join([<<"abc">>, <<"def">>], <<$|>>).
> <<"abc|def">>
>
> > binary:join(["abc", "def"], [$|]).
> <<"abc|def">>
>
> Very good work!
>
> Regards,
>
> Serge
>
>
>
> Fredrik Svahn wrote:
> > Thanks for the positive response both here an on the EEPs mailing list!
> >
> > My suggestion is that we continue the discussion regarding EEP-9 here
> > on the erlang-questions mailing list since it has a broader audience
> > than eeps@REDACTED I think it would make it a lot easier if we can
> > keep it in this thread.
> >
> > For those who do not subscribe to the eeps mailing list, I would like
> > to once again stress that this EEP does not cover improvements which
> > requires changes to the compiler. It has been suggested to me that the
> > smaller the EEP the faster it gets implemented so let us please keep
> > the scope as narrow as possible. There is always room for new EEPs.
> >
> > A shortcut to EEP-9: http://www.erlang.org/eeps/eep-0009.html
> >
> > Now, to answer your questions:
> >
> >> 1) Can the reference implementation be made available publicly as a
> >> patch to R12B-1? (Or actually in any fashion would be great.)
> >
> > The reference implementation in erlang is attached, the c part will
> > follow in the next message as there is a maximum message size on
> > erlang-questions. It matches the described functions minus what was
> > added after a first round of comments from the OTP developers (the
> > regexps for instance are probably going to have many more features
> > after what I hear!). I may also have added one or two relatively
> > simple functions, e.g. atom_to_binary, after the implementation was
> > submitted.
> >
> >> 2) Which algorithm was choosen for the binary:match()? For multiple
> >> keyword, Aho-Corasick would be great, especially if the interface was
> >> something like this:
> >
> > In the reference implementation Aho-Corasick was indeed used for
> > multiple keywords. Boyer-Moore was a logical choice for single
> > keywords and there was even a brute force approach for short
> > keywords/searchstrings.
> >
> >> MatchContext = binary:match_compile( [<<"the">>, <<"big">>,
> >> <<"frog">>] ),
> >> Value = <<"when we had a frog, he was big">>,
> >> [{3, 14}, {2, 27}] = binary:match( MatchContext, Value )
> >
> > Thanks for the comment. I think it makes a lot of sense to have a
> > separation of the building of the trie and the actual searching as you
> > suggest, especially if you are searching many binaries for the same
> > keyword(s). I am not sure how easy it would be to implement it,
> > though. I guess the returned match context would have to be some kind
> > of reference or packed in a binary. Maybe someone from the OTP team
> > could comment on that. I actually wanted to have the same thing for
> > regular expressions.
> >
> > I note that you also want a function which returns all the matches not
> > just the first one. Given that binary:match/3 takes indexes of the
> > start and end position of the search it is easy to also add a function
> > "binary:matches/2" in binary.erl which returns all the matches by
> > repeatedly calling match/3. Having both "match/2" and "matches/2"
> > would be similar to how it is done in the regexp module.
> >
> > BR /Fredrik
> >
> >
> > ------------------------------------------------------------------------
>
>
> >
> > _______________________________________________
> > erlang-questions mailing list
> > erlang-questions@REDACTED
> > http://www.erlang.org/mailman/listinfo/erlang-questions
>
>
More information about the erlang-questions
mailing list