On Wednesday, 29 August 2018 at 19:56:31 UTC, Everlast wrote:
One of the things that makes a good language is it's internal syntactic consistency. This makes learning a language easier and also makes remembering it easier. Determinism is a very useful tool as is abstraction consistency. To say "Just except D the way it is" is only because of necessity since that is the way D is, not because it is correct. (There are a lot of incorrect things in the world such as me "learning" D... since I've been programming in D on and off for 10 years, I just never used a specific type for variadics since I've always use a variadic type parameter)

To justify that a poor design choice is necessary is precisely why the poor design choice exists in the first place. These are blemishes on the language not proper design choices. For example, it is necessary for me to pay taxes, but it does not mean that taxes are necessary.

The syntax *is* consistent. In `foo(int[] a...)`, `int[]` is the type of the parameter, and `a` is its name. This is consistent with how all other function parameters are declared. The only difference is in how arguments are bound to that parameter. That's what the `...` signifies: that a single parameter will accept multiple arguments. It's really quite straightforward and orthogonal.

Reply via email to