Programmazione funzionale intermedia con purrr
Colin Fay
Data Scientist & R Hacker at ThinkR
"Per capire i calcoli in R, aiutano due slogan:
- Tutto ciò che esiste è un oggetto.
- Tutto ciò che accade è una chiamata di funzione." -John Chambers
class(`+`)
"function"
class(`<-`)
"function"
Le funzioni possono essere
manipolate
salvate in una variabile
lambda
salvate in una lista
argomenti di una funzione
restituite da una funzione
In una funzione pura:
l'output dipende solo dall'input
nessun "effetto collaterale"
# L'output dipende solo dagli input
# Nessun effetto collaterale
sum(1:10)
55
mean(1:100)
50.5
Funzioni impure:
Dipendono dall'ambiente
Hanno "effetti collaterali"
# L'output dipende dall'ambiente
Sys.Date()
"2018-10-04"
# Solo effetto collaterale
write.csv(iris, "iris.csv")
Programmazione funzionale intermedia con purrr