Funktionell programmering i R

Funktionell programmering på mellannivå med purrr

Colin Fay

Data Scientist & R Hacker at ThinkR

Om beräkningar i R

"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"
Funktionell programmering på mellannivå med purrr

R som ett funktionellt programmeringsspråk

Funktioner kan

  • manipuleras

  • lagras i en variabel

  • vara lambda

 

  • lagras i en lista

  • vara argument till en funktion

  • returneras av en funktion

Funktionell programmering på mellannivå med purrr

Om "rena funktioner"

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
Funktionell programmering på mellannivå med purrr

Orena funktioner är användbara

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

Läs mer om funktionell programmering

Funktionell programmering på mellannivå med purrr

Nu kör vi en övning!

Funktionell programmering på mellannivå med purrr

Preparing Video For Download...