Funktionell programmering på mellannivå med purrr
Colin Fay
Data Scientist & R Hacker at ThinkR
"För att förstå beräkningar i R är två påståenden användbara:
- Allt som existerar är ett objekt.
- Allt som händer är ett funktionsanrop." -John Chambers
class(`+`)
"function"
class(`<-`)
"function"
Funktioner kan
manipuleras
lagras i en variabel
vara lambda
lagras i en lista
vara argument till en funktion
returneras av en funktion
I en ren funktion:
utdata beror enbart på indata
inga "sidoeffekter"
# Output depends only on inputs
# No side effect
sum(1:10)
55
mean(1:100)
50.5
Orena funktioner:
Beror på miljön
Har "sidoeffekter"
# Outputs depends of environment
Sys.Date()
"2018-10-04"
# Side effect only
write.csv(iris, "iris.csv")
Funktionell programmering på mellannivå med purrr