Re: Add lists:init/1 - got tired of implementing it

Siri Hansen <[email protected]> Thu, 16 Jan 2014 11:26:02 +0100
Newsgroups gmane.comp.lang.erlang.patches
Message-ID <CAGqERUEVKc8Wyp5KeNtOvtCWLQAeW3_mLHKWh1mDvX6tEap4+g@mail.gmail.com>
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]>

> 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]
> http://erlang.org/mailman/listinfo/erlang-patches
>

_______________________________________________
erlang-patches mailing list
[email protected]
http://erlang.org/mailman/listinfo/erlang-patches