Re: Add lists:init/1 - got tired of implementing it
Hans Svensson <[email protected]> Sun, 19 Jan 2014 19:15:52 +0100
| Newsgroups | gmane.comp.lang.erlang.patches |
|---|---|
| Message-ID | <[email protected]> |
Great! I'll fix that! I happened to re-implement this function again the other day, and thought about how sad it was that the function wasn't there ;-) Would you like me to actually use the function (in the places mentioned below) as well, our would you prefer that to be a separate patch? /Hans On 2014-01-16 11:26, Siri Hansen wrote: > Hi Hans! > > After many and long discussions we have now decided to re-open this > patch and approve it with some comments: > > 1. we would like the name of the function to be 'droplast'. > 2. we want the simple recursive implementation with no special handling > of bad arguments, i.e. we think it is ok with a function_clause error > for arguments that are not non-empty proper lists. > > Would you mind doing these adjustments in the patch? > > Best Regards > /siri > > > 2013/5/21 Hans Svensson <[email protected] <mailto:[email protected]>> > > Hello Hans, > I've got some feedback on your patch after review: > We have decided to reject this patch as we don't see a general > need for > the new function. > > Thanks for showing interest in contributing! > > -- > > BR Fredrik Gustafsson > Erlang OTP Team > > > That is sad news, and we find it a bit strange since *you* (as in > the OTP team) yourself seems use this particular function/pattern > quite frequently. We did a quick search through the OTP code base > and found quite a few places where this particular function is > either implemented recursively and used, or just uses > reverse(tl(reverse(List)))). Also interesting to see is the > different names used: first, butlast, but_last and remove_last_element. > > Code implementing the "init"-function: > compiler > v3_core:first/1 > v3_kernel:first/1 > dialyzer > dialyzer_contracts:but_last/1 > dialyzer_gui:butlast/1 > hipe > hipe_icode_type:butlast/1 > orber > orber_interceptors:remove___last_element/1 > > Direct uses of reverse(tl(reverse(L))): > sasl > in systools_make:smart_guess/3 > wx_gen > in wx_gen:erl_skip_opt2/4 > ssh > in ssh_sftpd > > Any further comments on this, it is really not a "new" function it > is a missing function ;-) > > Cheers, > > Hans > > _________________________________________________ > erlang-patches mailing list > [email protected] <mailto:[email protected]> > http://erlang.org/mailman/__listinfo/erlang-patches > <http://erlang.org/mailman/listinfo/erlang-patches> > > _______________________________________________ erlang-patches mailing list [email protected] http://erlang.org/mailman/listinfo/erlang-patches