Programowanie funkcyjne w R

Funkcyjne programowanie średnio zaawansowane z purrr

Colin Fay

Data Scientist & R Hacker at ThinkR

O obliczeniach w R

„Aby zrozumieć obliczenia w R, pomocne są dwa stwierdzenia:

- Wszystko, co istnieje, jest obiektem.

- Wszystko, co się dzieje, jest wywołaniem funkcji."    -John Chambers

class(`+`)
"function"
class(`<-`)
"function"
Funkcyjne programowanie średnio zaawansowane z purrr

R jako język programowania funkcyjnego

Funkcje mogą być

  • manipulowane

  • przechowywane w zmiennej

  • lambda

 

  • przechowywane na liście

  • argumentami funkcji

  • zwracane przez funkcję

Funkcyjne programowanie średnio zaawansowane z purrr

O „czystych funkcjach"

Czysta funkcja:

  • wynik zależy wyłącznie od argumentów

  • brak „efektów ubocznych"

# Wynik zależy tylko od argumentów
# Brak efektów ubocznych
sum(1:10)
55
mean(1:100)
50.5
Funkcyjne programowanie średnio zaawansowane z purrr

Nieczyste funkcje są użyteczne

Nieczyste funkcje:

  • zależą od środowiska

  • mają „efekty uboczne"

# Wynik zależy od środowiska
Sys.Date()
"2018-10-04"
# Wyłącznie efekt uboczny
write.csv(iris, "iris.csv")
Funkcyjne programowanie średnio zaawansowane z purrr

Więcej o programowaniu funkcyjnym

Funkcyjne programowanie średnio zaawansowane z purrr

Czas na ćwiczenia!

Funkcyjne programowanie średnio zaawansowane z purrr

Preparing Video For Download...