Skip to content

Instantly share code, notes, and snippets.

@gdejohn
Last active January 31, 2018 07:05
Show Gist options
  • Save gdejohn/fb2ba0472ed972860bcbc8ca11274699 to your computer and use it in GitHub Desktop.
Save gdejohn/fb2ba0472ed972860bcbc8ca11274699 to your computer and use it in GitHub Desktop.
Anonymous recursion in Java
import java.util.function.Function;
import java.util.function.UnaryOperator;
class Factorial {
static <T, R> Function<T, R> fix(UnaryOperator<Function<T, R>> operator) {
return operator.apply(argument -> fix(operator).apply(argument));
}
static Function<Integer, Integer> factorial = fix(f -> n -> n == 0 ? 1 : n * f.apply(n - 1));
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment