Apocalisp

The end of programming as you know it

Archive for April, 2008

Left-Fold in Java

Posted by RĂșnar on April 22, 2008

Here’s my take on a left fold in Java. Calling it is somewhat verbose, but it does the job of abstracting iteration so you don’t actually have to write another for loop on Iterable as long as you live.


  public static <A, B> A fold(F<A, F<B, A>> f, A z, Iterable<B> xs)
    { A p = z;
      for (B x : xs)
        { p = f.f(p).f(x); }
      return p; }

In case it’s not obvious, F<A, B> is an interface with one method: B f(A a).

Posted in Programming, java | Tagged: , , | 2 Comments »