Programmation fonctionnelle intermédiaire avec purrr
Colin Fay
Data Scientist & R Hacker at ThinkR
« Pour comprendre les calculs en R, deux slogans aident :
- Tout ce qui existe est un objet.
- Tout ce qui se passe est un appel de fonction. » -John Chambers
class(`+`)
"function"
class(`<-`)
"function"
Les fonctions peuvent être
manipulées
stockées dans une variable
lambda
stockées dans une liste
arguments d'une fonction
retournées par une fonction
Dans une fonction pure :
la sortie dépend seulement des entrées
aucun « effet de bord »
# La sortie dépend seulement des entrées
# Aucun effet de bord
sum(1:10)
55
mean(1:100)
50.5
Fonctions impures :
Dépendent de l'environnement
Ont des « effets de bord »
# La sortie dépend de l'environnement
Sys.Date()
"2018-10-04"
# Effet de bord seulement
write.csv(iris, "iris.csv")
Programmation fonctionnelle intermédiaire avec purrr