Functional programming in R

Programmazione funzionale intermedia con purrr

Colin Fay

Data Scientist & R Hacker at ThinkR

About computation in R

"To understand computations in R, two slogans are helpful:

- Everything that exists is an object.

- Everything that happens is a function call."    -John Chambers

class(`+`)
"function"
class(`<-`)
"function"
Programmazione funzionale intermedia con purrr

R as a functional programming language

Functions can be

  • manipulated

  • stored in a variable

  • lambda

 

  • stored in a list

  • arguments of a function

  • returned by a function

Programmazione funzionale intermedia con purrr

About "pure functions"

In a pure function:

  • output only depends on input

  • no "side-effect"

# Output depends only on inputs
# No side effect
sum(1:10)
55
mean(1:100)
50.5
Programmazione funzionale intermedia con purrr

Impure functions are useful

Impure functions:

  • Depend on environment

  • Have "side-effects"

# Outputs depends of environment 
Sys.Date()
"2018-10-04"
# Side effect only
write.csv(iris, "iris.csv")
Programmazione funzionale intermedia con purrr

Read more about functional programming

Programmazione funzionale intermedia con purrr

Let's practice!

Programmazione funzionale intermedia con purrr

Preparing Video For Download...