code: public class ManOrBoy {
      interface Arg {
          public int run();
      }
  
      public static int A(final int k, final Arg x1, final Arg x2,
                            final Arg x3, final Arg x4, final Arg x5) {
          if (k <= 0)
              return x4.run() + x5.run();
          return new Arg() {
              int m = k;
              public int run() {
                  m--;
                  return A(m, this, x1, x2, x3, x4);
              }
          }.run();
      }
      public static Arg C(final int i) {
          return new Arg() {
              public int run() { return i; }
          };
      }
  
      public static void main(String[] args) {
          System.out.println(A(10, C(1), C(-1), C(-1), C(1), C(0)));
      }
  }
  