Lập trình hàm nâng cao với purrr
Colin Fay
Data Scientist & R Hacker at ThinkR
"Để hiểu cách tính toán trong R, hai khẩu hiệu sau rất hữu ích:
- Mọi thứ tồn tại đều là một đối tượng.
- Mọi thứ xảy ra đều là một lời gọi hàm." -John Chambers
class(`+`)
"function"
class(`<-`)
"function"
Hàm có thể
được thao tác
được lưu trong biến
lambda
được lưu trong list
làm đối số của một hàm
được trả về bởi một hàm
Trong một hàm thuần khiết:
đầu ra chỉ phụ thuộc vào đầu vào
không có "tác dụng phụ"
# Output depends only on inputs
# No side effect
sum(1:10)
55
mean(1:100)
50.5
Hàm không thuần khiết:
Phụ thuộc vào môi trường
Có "tác dụng phụ"
# Outputs depends of environment
Sys.Date()
"2018-10-04"
# Side effect only
write.csv(iris, "iris.csv")
Lập trình hàm nâng cao với purrr