Tips for golfing in D2

Function calls

// use
i.writeln;
// instead of
writeln(i);


// use
writeln;
// instead of
writeln();

Conditions

Use the ternary operator (?:) or &&/||:

if(i>0)i.write;
if(i)i.write;
i?i.write:0;
i&&i.write;

auto keyword

string s="foo";
auto s="foo";

Terminating by error

If your program terminates by error, you can replace void main with int main. For example, the shortest way to loop over args:

import std;int main(string[]a){for(int i;;)a[++i].writeln;}

main parameters

The compiler may have told you,

function D main parameter list must be empty or accept one parameter of type string[]

but actually, the main function can accept a char[][] parameter instead. This can allow you to use split on an argument instead of splitter.