Flag proposal
so
so at so.so
Tue Jun 14 09:45:15 PDT 2011
On Tue, 14 Jun 2011 15:18:09 +0300, KennyTM~ <kennytm at gmail.com> wrote:
>> loc.x on the caller side, it has no idea about function signature, and
>> you don't know if it was 10th or 2nd argument in function.
>>
>> // definition
>> fun(int x, int y) {
>> }
>>
>> // call
>> fun(x, y) // you need to check the definition if you think something
>> wrong with parameters the second time you come here
>> fun(y, x) // same
>> fun(x:x, y:y) // you know there is nothing wrong with parameters
>> fun(y:y, x:x) // same
>>
>
> If you have no idea about the function signature, you have no idea about
> the parameter names either.
I think you are just resisting here, if you write a call once with named
arguments, you documented it in place, the next time you visit this call
all you need to see is in the call site.
> You see the difference between variables and generic constants?
>
> RECT bounds;
> GetWindowRect(hWnd, &bounds);
>
> writeln("Please enter the coordinates.");
> auto x = readln().chomp().to!int();
> auto y = readln().chomp().to!int();
> auto width = bounds.right - bounds.left;
> auto height = bounds.bottom - bounds.top;
>
> MoveWindow(hWnd, x, y, width, height, bRepaint:true);
> vs.
>
> writeln("Resetting window dimensions");
> ...
> MoveWindow(hWnd, X:0, Y:0, nWidth:800, nHeight:600, bRepaint:true);
>
> Named arguments provides clarification when the argument itself (e.g. 0,
> false, true) is meaningless. But with a variable which itself provides a
> meaning, forcing named argument on _every_argument_passed_ is just
> annoying.
Looks like i am just repeating myself but i don't understand how is pssing
constants meaningless and variables, and why do you even need named
arguments for those?
enum x=...
enum y=...
...
fun(x, y)
> Yet all well-known languages that support named arguments that support
> reordering also support hybrid. (C# 4, VB 6, Python, CLisp, ...)
This is not an argument.
More information about the Digitalmars-d
mailing list