delegate int SomeFunction(); class Pair { public SomeFunction fa; public SomeFunction fb; public Pair(SomeFunction fa, SomeFunction fb) { this.fa = fa; this.fb = fb; } } Pair builder(int v) { return new Pair( () => { return ++v; }, () => { return --v; } ); } void main() { Pair p1 = builder(10); Pair p2 = builder(100); stdout.printf("%d %d %d\n", p1.fa(), p1.fa(), p1.fb()); stdout.printf("%d %d %d\n", p2.fa(), p2.fa(), p2.fb()); }