purrr로 배우는 중급 함수형 프로그래밍
Colin Fay
Data Scientist & R Hacker at ThinkR
"R의 연산을 이해하는 데 유용한 두 가지 원칙이 있습니다:
- 존재하는 모든 것은 객체입니다.
- 일어나는 모든 것은 함수 호출입니다." -John Chambers
class(`+`)
"function"
class(`<-`)
"function"
함수는 다음과 같이 활용할 수 있습니다
조작
변수에 저장
람다
리스트에 저장
함수의 인수
함수의 반환값
순수 함수의 특징:
출력은 입력에만 의존
"부작용" 없음
# 출력은 입력에만 의존
# 부작용 없음
sum(1:10)
55
mean(1:100)
50.5
비순수 함수의 특징:
환경에 의존
"부작용" 발생
# 출력이 환경에 의존
Sys.Date()
"2018-10-04"
# 부작용만 발생
write.csv(iris, "iris.csv")
purrr로 배우는 중급 함수형 프로그래밍