1. 学习
  2. /
  3. 课程
  4. /
  5. purrr로 배우는 중급 함수형 프로그래밍

Connected

练习

순수 함수 식별하기

순수 함수는 다음 두 가지 성질을 만족합니다:

  • 출력이 오직 입력에만 의존해요. 같은 값을 넣으면 결과도 항상 같아요.
  • 부작용이 없어요. 즉, 함수 바깥에 아무 영향도 주지 않아요.

R의 많은 함수는 순수하지 않지만, 일상적인 R 작업에는 꼭 필요해요. 예를 들어 분석할 때는 파일을 다운로드하고, 그래프를 만들고, 결과를 저장해야 하죠.

프로그래밍할 때는 함수가 가능한 한 순수하게 만들거나, 반대로 목적에 맞게 명확히 비순수하게 만드는 것이 좋아요(예: 파일을 다운로드하는 함수는 그 파일만 다운로드하도록). 이를 위해서는 먼저 순수 함수와 비순수 함수를 구분할 수 있어야 해요.

이번 연습에서는 순수한 함수와 비순수한 함수를 각각 실행해 보고, 어떤 출력이 나오는지 살펴보겠습니다.

说明 1 / 共 4 个

undefined XP
  • 1

    Sys.time()을 실행하고, Sys.sleep(1)을 실행한 다음, 다시 Sys.time()을 실행해 보세요. 같은 함수를 두 번 호출해도 결과가 달라질 수 있음을 확인합니다.

  • 2

    nrow(iris)를 실행하고, Sys.sleep(1)을 실행한 다음, 다시 nrow(iris)를 실행해 보세요. 시간과 무관하게 두 호출의 결과가 동일함을 확인합니다.

  • 3

    환경의 객체를 나열하는 ls()를 실행하세요. 숫자 12를 담은 새 객체 this를 생성한 뒤, 다시 ls()를 실행해 보세요.

  • 4

    iris 데이터셋의 기본 그래프를 만드는 plot(iris)를 실행하세요. 콘솔에는 아무 것도 출력되지 않고, 오직 부작용만 발생한다는 점을 확인해 보세요.