On Tue, 29 Jun 2021 at 04:07, Albert Y. C. Lai <trebla@vex.net> wrote:

The logical conclusion of "elem : list" is

e1 : e2 : e3 : e4 : list

without needing a 2nd notation to make it nicer.


(As I said up-thread you almost always need to add the parens notation -- not to make it "nicer", but to make it parse correctly.)

I appreciate syntax is a matter of personal taste, but my taste prefers the brackets and commas.
 
The logical conclusion of "[elem | list]" is

[e1 | [e2 | [e3 | [e4 | list]]]]

That's not nice.

Quite often `e1:e2:e3:e4:list` won't work, because the expressions have infix operators. So you end up with

>    (e1: (e2: (e3: (e4: list))))

So you still have to squint to make sure the parens balance.
 
That explains why someone had to invent a 2nd notation,
[e1, e2, e3, e4 | list]. 

Sure. The commas form is a shorthand. Just like

>    (e1, e2, e3, e4)    is shorthand for (,,,) e1 e2 e3 e4
>    e1 + e2 * e3           is shorthand for  (+) e1 ((*) e2 e3)
 
Ironically, the need for a 2nd notation proves
that the original "[elem | list]" design was ill-conceived.


So which form of tuple syntax do you think is ill-conceived?