I'm writing a function called genArray that accepts a function gen and returns a random array populated by calling gen(). genString builds on this by returning genArray(&genChar). But my type signatures are wrong.
In dashcheck.d:
char genChar() {
return cast(char) uniform(0, 128);
}
T[] genArray(T function() gen) {
int len = uniform(0, 100);
T[] arr = [];
for(int i = 0; i < len; i++) {
arr ~= gen();
}
return arr;
}
string genString() {
return genArray(&genChar);
}
Trace:
dashcheck.d(17): Error: undefined identifier T
dashcheck.d(17): Error: T is used as a type
dashcheck.d(17): Error: undefined identifier T
dashcheck.d(17): Error: T is used as a type
Cheers,
Andrew Pennebaker