Java операторы потока могут иногда быть очень громоздкими и трудными для отладки. Есть ли рекомендация относительно того, насколько сложным должно быть ваше лямбда-выражение, за которым лучше написать сложный фрагмент кода, состоящий из нескольких операторов?
Например, ниже я наткнулся на два кода оператора для поиска факториала. что было трудно понять:
Stream<Pair> allFactorials = Stream.iterate(
new Pair(BigInteger.ONE, BigInteger.ONE),
x -> new Pair(
x.num.add(BigInteger.ONE),
x.value.multiply(x.num.add(BigInteger.ONE))));
return allFactorials.filter(
(x) -> x.num.equals(num)).findAny().get().value;