더북(TheBook)

0 1 2 3 ... 같은 무한 수열을 만들어내려면 iterate 메서드를 사용한다. iterate 메서드는 ‘시드seed’ 값과 함수(기술적으로는 UnaryOperator<T>)를 받고, 해당 함수를 이전 결과에 반복적으로 적용한다. 예를 들면, 다음과 같다.


Stream<BigInteger> integers

= Stream.iterate(BigInteger.ZERO, n -> n.add(BigInteger.ONE));


 

수열의 첫 번째 요소는 시드 값인 BigInteger.ZERO다. 두 번째 요소는 f(seed), 즉 (BigInteger 값으로) 1이다. 다음 요소는 f(f(seed)), 즉 2 등이 된다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.