Funkcja w funkcji w R

0

Cześć,
chciałem napisać funkcje, która działa w następujący sposób oblicz("pierwiastek")(4) -> zwraca 2, oblicz("kwadrat")(4) -> zwraca 16 etc. Jednak nie mogę sobie z tym poradzić, niestety dopiero raczkuje i się uczę.

Pozdrawiam i z góry dzięki za pomoc

2
pierwiastek <- function(x){
  function(x){
    sqrt(x)    
  }
}

kwadrat <- function(x){
  function(x){
    x * x   
  }
}

oblicz <- function(x) {
  eval(call(x))
}

oblicz("pierwiastek")(4)
oblicz("kwadrat")(4)
0

Super, wielkie dzięki! ;)

A mam jeszcze pytanko, czy jest opcja żeby to zrobić w jednym ciele funkcji? Tak, aby w funkcji oblicz deklarować łatwo kolejne takie opcje?

1

Możesz ifami to zrobić albo przeciążać funkcję.

0

Jak wyglądałoby takie przeciążenie?

1

Musiałbyś obiekty porobić albo na typach, na Twoim przykładzie to jest bezsensu. Weź se jakąś książkę do R, polecam Biecka na początek jeśli znasz się na statystyce.

1 użytkowników online, w tym zalogowanych: 0, gości: 1