Fortgeschrittene funktionale Programmierung mit purrr
Colin Fay
Data Scientist & R Hacker at ThinkR
„Um Berechnungen in R zu verstehen, helfen zwei Leitsätze:
- Alles, was existiert, ist ein Objekt.
- Alles, was passiert, ist ein Funktionsaufruf." -John Chambers
class(`+`)
"function"
class(`<-`)
"function"
Funktionen können
manipuliert werden
in einer Variablen gespeichert werden
Lambda-Ausdrücke sein
in einer Liste gespeichert werden
Argumente einer Funktion sein
von einer Funktion zurückgegeben werden
Bei einer reinen Funktion:
Ausgabe hängt nur von Eingaben ab
keine „Side-Effects"
# Ausgabe hängt nur von den Eingaben ab
# Kein Seiteneffekt
sum(1:10)
55
mean(1:100)
50.5
Unreine Funktionen:
hängen von der Umgebung ab
haben „Side-Effects"
# Ausgabe hängt von der Umgebung ab
Sys.Date()
"2018-10-04"
# Nur Seiteneffekt
write.csv(iris, "iris.csv")
Fortgeschrittene funktionale Programmierung mit purrr