code: public class AccumulatorFactory {
  
      public interface Accumulator {
          double add(double x);
      }
  
      private static Accumulator accumulator(final double initial) {
          return new Accumulator() {
              private double sum = initial;
  
              @Override
              public double add(double x) {
                  return sum += x;
              }
          };
      }
  
      public static void main(String[] args) {
          Accumulator x = accumulator(1.0);
          x.add(5.0);
          System.out.println(accumulator(3.0));
          System.out.println(x.add(2.3));
      }
  }
  