Eu não entendo direito quando dizem que uma lambda é preguiçosa ou gulosa.
Por exemplo, a seguinte lambda:
IntStream.of(values).filter(value -> value % 2 ==0).forEach(value -> System.out.println(value);
Pelo teoria, filter é uma expressão lambda preguiçosa, portanto ela só é avaliada depois que uma expressão terminal é executada(forEach).
Mas primeiro ela não filtra os elementos criando um novo fluxo para forEach?
Enfim, to tentando entender isso, alguém pode me dar uma força?