One way this could be done is by expanding on lazy parameters. Perhaps you could specify parameters for a lazy argument, so instead of always getting a delegate of type T delegate(), you could get one of type T delegate(U a, V b).

For example, a parameter could be:
void f(lazy bool exp(int a, int b)) {
    bool result = exp(1, 2);
}

Then when you call that:
f(a < b)

The names 'a' and 'b' come from the parameter list for 'f'. I would definitely vote for this as a feature!

Reply via email to