Re: Add lists:init/1 - got tired of implementing it
Hans Svensson <[email protected]> Wed, 22 Jan 2014 23:14:23 +0100
| Newsgroups | gmane.comp.lang.erlang.patches |
|---|---|
| Message-ID | <[email protected]> |
Finally got around to do the fixes. Screwed up my git branch, so the lists:droplast/1 is now in a differently named branch: git fetch git://github.com/hanssv/otp.git add_droplast_to_lists https://github.com/hanssv/otp/compare/erlang:maint...add_droplast_to_lists https://github.com/hanssv/otp/compare/erlang:maint...add_droplast_to_lists.patch A separate patch with usage will follow as soon as I can find the time for it! Cheers, 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