Funktionale Programmierung in R

Fortgeschrittene funktionale Programmierung mit purrr

Colin Fay

Data Scientist & R Hacker at ThinkR

Über Berechnungen in R

„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"
Fortgeschrittene funktionale Programmierung mit purrr

R als funktionale Programmiersprache

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

Fortgeschrittene funktionale Programmierung mit purrr

Über „reine Funktionen"

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
Fortgeschrittene funktionale Programmierung mit purrr

Unreine Funktionen sind nützlich

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

Mehr über funktionale Programmierung

Fortgeschrittene funktionale Programmierung mit purrr

Lass uns üben!

Fortgeschrittene funktionale Programmierung mit purrr

Preparing Video For Download...