delegate bool Cond (T2 x); delegate T IntCode(); T condition(Cond cond, T2 item, T falseValue, IntCode codeblock) { if (!(cond(item))) { return falseValue; } else { return codeblock(); } }