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

Robert Virding <>
Thu Jan 16 14:54:55 CET 2014


Shouldn't be called liat/1 instead? Just joking. 

Robert 

----- Original Message -----

> From: "Siri Hansen" <>
> To: "Hans Svensson" <>
> Cc: "erlang-patches" <>
> Sent: Thursday, 16 January, 2014 11:26:02 AM
> Subject: Re: [erlang-patches] Add lists:init/1 - got tired of implementing it

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

> _______________________________________________
> 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/1a656dc3/attachment.html>


More information about the erlang-patches mailing list