Generic filter와 map의 공통 구조

collection 순회는 고정하고 판단과 변환을 함수 값으로 분리한다.

Collection algorithm

Source

원본 encounter order를 제공한다.

Predicate

T를 유지할지 결정한다.

Function

T를 R로 바꾼다.

Result

새 immutable snapshot을 반환한다.

핵심: 구체 element type이 바뀌어도 loop algorithm은 재사용된다.