1. 학습
  2. /
  3. 강의
  4. /
  5. purrr로 배우는 중급 함수형 프로그래밍

Connected

연습 문제

keep()와 discard()로 나눠 보기

결과를 두 그룹으로 나누려고 합니다: 100을 초과한 날과 100 미만인 날입니다. 이를 위해 keep()와 discard()를 함께 사용하겠습니다.

왜 함수가 두 개일까요? 하나로는 안 될까요? is_less_than_hundred라는 매퍼를 만들면 되지 않을까요?

가능은 하지만, 실수할 여지가 더 커집니다. 복사/붙여넣기보다는 keep()에서 discard()로 전환하는 편이 훨씬 쉽습니다. 두 함수를 함께 쓰면 매퍼는 하나만 필요합니다. 즉, 임계값을 바꾸고 싶을 때 매퍼가 두 개라면 두 번 바꿔야 하지만, 지금처럼 하면 한 번만 바꾸면 됩니다.

이것은 코딩할 때 지향해야 할 원칙입니다: 어떤 값을 변경해야 할 때 한 곳만 고치면 되도록 코드를 작성하세요.

all_visits는 워크스페이스에 그대로 있습니다.

지침

100 XP
  • 요일 이름을 추가하기 위해 set_names() 함수를 all_visits에 매핑해 all_visits_named를 만드세요.
  • .x가 100을 초과하는지 검사하는 매퍼 threshold를 만드세요.
  • 100을 초과하는 요소만 유지해 group_over를 만드세요.
  • 100을 초과하는 요소를 버려 group_under를 만드세요.