컬렉션에 keep과 discard 연산을 구현하세요.
컬렉션과 그 컬렉션 원소에 대한 조건 함수가 주어졌을 때, keep은 조건 함수가 참인 원소만 담은 새 컬렉션을 반환하고, discard는 조건 함수가 거짓인 원소만 담은 새 컬렉션을 반환해요.
예를 들어, 다음과 같은 숫자 컬렉션이 주어지고:
조건 함수가 다음과 같다면:
그러면 keep 연산의 결과는 다음과 같아요:
discard 연산의 결과는 다음과 같아요:
keep과 discard의 결과를 합치면 모든 원소가 된다는 점에 유의해요.
함수 이름은 keep과 discard일 수도 있고, 사용하는 언어의 기존 함수나 개념과 충돌하지 않도록 다른 이름이 필요할 수도 있어요.
표준 라이브러리에서 제공하는 filter/reject, 뭐라고 부르든 그런 기능에는 손대지 마세요! 대신 다른 기본 도구만으로 직접 풀어보세요.
테스트 스위트는 keep과 discard 메서드에 블록 인자로 Function 클래스 인스턴스를 전달해요.
테스트를 통과하려면 코드 안에서 이 함수를 호출해야 해요.
이 방법이 익숙하지 않다면 Function 클래스 문서를 참고해 봐요.