using System;
public class Test
{
static Func<int, int, bool> ConstructRelation(string s)
{
switch (s)
{
case ">": return (Func<int, int, bool>)((a, b) => a > b);
case "<": return (Func<int, int, bool>)((a, b) => a < b);
case "==": return (Func<int, int, bool>)((a, b) => a == b);
case ">=": return (Func<int, int, bool>)((a, b) => a >= b);
case "<=": return (Func<int, int, bool>)((a, b) => a <= b);
default: throw new ArgumentException("Unknown relation");
}
}
public static void Main()
{
Func<int, int, bool> rel = ConstructRelation(">");
Console.WriteLine(rel(5, 4)); // выводит True
}
}
dXNpbmcgU3lzdGVtOwoKcHVibGljIGNsYXNzIFRlc3QKewogICAgc3RhdGljIEZ1bmM8aW50LCBpbnQsIGJvb2w+IENvbnN0cnVjdFJlbGF0aW9uKHN0cmluZyBzKQogICAgewogICAgICAgIHN3aXRjaCAocykKICAgICAgICB7CiAgICAgICAgICAgIGNhc2UgIj4iOiAgcmV0dXJuIChGdW5jPGludCwgaW50LCBib29sPikoKGEsIGIpID0+IGEgPiBiKTsKICAgICAgICAgICAgY2FzZSAiPCI6ICByZXR1cm4gKEZ1bmM8aW50LCBpbnQsIGJvb2w+KSgoYSwgYikgPT4gYSA8IGIpOwogICAgICAgICAgICBjYXNlICI9PSI6IHJldHVybiAoRnVuYzxpbnQsIGludCwgYm9vbD4pKChhLCBiKSA9PiBhID09IGIpOwogICAgICAgICAgICBjYXNlICI+PSI6IHJldHVybiAoRnVuYzxpbnQsIGludCwgYm9vbD4pKChhLCBiKSA9PiBhID49IGIpOwogICAgICAgICAgICBjYXNlICI8PSI6IHJldHVybiAoRnVuYzxpbnQsIGludCwgYm9vbD4pKChhLCBiKSA9PiBhIDw9IGIpOwogICAgICAgICAgICBkZWZhdWx0OiB0aHJvdyBuZXcgQXJndW1lbnRFeGNlcHRpb24oIlVua25vd24gcmVsYXRpb24iKTsKICAgICAgICB9CiAgICB9CgkKCXB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKCkKCXsKICAgICAgICBGdW5jPGludCwgaW50LCBib29sPiByZWwgPSBDb25zdHJ1Y3RSZWxhdGlvbigiPiIpOwogICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKHJlbCg1LCA0KSk7IC8vINCy0YvQstC+0LTQuNGCIFRydWUKCX0KfQ==