순회 제어를 caller가 쥐는지 library가 쥐는지 비교한다.
iterator·continue·result add를 코드가 직접 관리한다
predicate와 mapper를 주고 library가 element를 전달한다
핵심: Stream 문법이 side effect와 공유 상태를 자동으로 안전하게 만들지는 않는다.