D syntax improvement ideas, huh?

Make UFCS work for locally defined functions, with a pragma or something, because it can confuse people, but it can also be useful for state machines on ranges, and to avoid cluttering up module namespaces.

Pass a block of code as an argument, outside the parentheses. like foo!(bar,baz) { stuff } would be defined as template foo(bar,baz,block stuff) { ... } or something.

(incidentally you can sort of do this already, for instance by making a struct that completes evaluation after you call opBinary(string op, void delegate()) if op == "|", then makestruct(foo,bar) | { stuff })

Allow struct initializers to construct function arguments. I mean, seriously. We already practically have support for keyword arguments, except for this.

void foo(Something info) {...}

foo({
  arg: 23,
  arg2: 42,
  keyword: value
});

I dunno, optional parentheses if there's just one argument? So you could do void foo(void delegate() bar) { ... } then just foo { stuff } instead of foo({ stuff })

Reply via email to