[erlang-patches] Add lists:init/1 - got tired of implementing it

Siri Hansen <>
Thu Jan 16 11:26:02 CET 2014


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 <>

> 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
> 
> http://erlang.org/mailman/listinfo/erlang-patches
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-patches/attachments/20140116/134e862d/attachment.html>


More information about the erlang-patches mailing list