Funkcyjne programowanie średnio zaawansowane z purrr
Colin Fay
Data Scientist & R Hacker at ThinkR
„Aby zrozumieć obliczenia w R, pomocne są dwa stwierdzenia:
- Wszystko, co istnieje, jest obiektem.
- Wszystko, co się dzieje, jest wywołaniem funkcji." -John Chambers
class(`+`)
"function"
class(`<-`)
"function"
Funkcje mogą być
manipulowane
przechowywane w zmiennej
lambda
przechowywane na liście
argumentami funkcji
zwracane przez funkcję
Czysta funkcja:
wynik zależy wyłącznie od argumentów
brak „efektów ubocznych"
# Wynik zależy tylko od argumentów
# Brak efektów ubocznych
sum(1:10)
55
mean(1:100)
50.5
Nieczyste funkcje:
zależą od środowiska
mają „efekty uboczne"
# Wynik zależy od środowiska
Sys.Date()
"2018-10-04"
# Wyłącznie efekt uboczny
write.csv(iris, "iris.csv")
Funkcyjne programowanie średnio zaawansowane z purrr