<p dir="ltr">No - down with lists. Tuples for everything! More specifically, 2-tuples only! (But we get to keep nil. Can't do without nil.)</p>
<p dir="ltr">Joke aside, thanks for the calendrical confusion.</p>
<div class="gmail_quote">Den 27/08/2014 20.51 skrev "Dmitry Demeshchuk" <<a href="mailto:demeshchuk@gmail.com">demeshchuk@gmail.com</a>>:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">I, personally, think lists are obsolete too. Instead, everyone should just use maps for everything:<div><br></div><div>{ 1 => first_element, 2 => second_element, 3 => third_element }.</div></div><div class="gmail_extra">

<br><br><div class="gmail_quote">On Wed, Aug 27, 2014 at 11:21 AM, Chris Pacejo <span dir="ltr"><<a href="mailto:colanderman@gmail.com" target="_blank">colanderman@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

Tuples are clearly unnecessary and a wart in Erlang's design.<br>
Consider all the operations tuples provide:<br>
<br>
Construction: X = {A,B,C}<br>
Destruction: {A,B,C} = X<br>
Pattern matching: case X of {foo,B,C} -> ... end<br>
<br>
Note now that these operations are provided equally by lists:<br>
<br>
Construction: X = [A,B,C]<br>
Destruction: [A,B,C] = X<br>
Pattern matching: case X of [foo,B,C] -> ... end<br>
<br>
And note that lists provide the additional functionality of indexing<br>
and consing, which tuples do not provide.<br>
<br>
Clearly, using tuples instead of lists provides no benefit, and to<br>
simplify the language they should be deprecated in OTP 18, and removed<br>
by OTP 19.  To support this transition, a compiler option can be<br>
provided to maintain the ill-conceived tuple notation for legacy code;<br>
may I suggest +distinguish_homogenous_and_heterogenous_collections.<br>
<br>
Now, surely detractors will claim that the distinction between tuples<br>
and lists signals programmer intent, permits bytecode optimization,<br>
and enables rich typechecking in Dialyzer.  I claim these purported<br>
benefits are bollocks.  I, and no doubt others, routinely find the<br>
need to iterate over tuple elements, and to store unrelated data<br>
together in a single list.  Anyone who claims that such things are not<br>
necessary clearly has not ever written a complex program.  (I suspect<br>
anyone who thinks structurally-typed records and key-value maps serve<br>
different purposes falls into this group.)<br>
<br>
I hope you all agree, and that we can look forward to a future Erlang<br>
supporting lists and maps as its sole data constructors.<br>
<br>
- Chris P<br>
_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>Best regards,<br>Dmitry Demeshchuk
</div>
<br>_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
<br></blockquote></div>