The syntax is "The first expression is a function, all following expressions are arguments to that function". Fullstop.
It would be unfair of me to say "C has confusing and ambiguous calling conventions, the compiler complains if I write A(B(C(D))) as A(B,C,D)"
Because you would respond "Well of course, that's just the calling conventions of the language!"
To which I say "Exactly"
The syntax is "The first expression is a function, all following expressions are arguments to that function". Fullstop.
It would be unfair of me to say "C has confusing and ambiguous calling conventions, the compiler complains if I write A(B(C(D))) as A(B,C,D)"
Because you would respond "Well of course, that's just the calling conventions of the language!"
To which I say "Exactly"