Как создать функцию, которая принимает функцию в качестве входных данных и возвращает эту функцию модифицированной, но с теми же входными аргументами? - PullRequest
1 голос
/ 17 марта 2020

Пусть, например, функция g определяется как g(x):=x+1.

Я хочу запрограммировать функцию f, которая может принимать произвольную функцию h(a_1,...,a_n) (a_1,...,a_n в качестве аргументов) и возвращать функцию g(h). Так что f(h)(a_1=1,...,a_n=n) работает и возвращает так же, как g(h(a_1=1,...,a_n=n)).

Итак, нам нужно что-то вроде

f <- (h) {<br> - получить аргументы h и поместить их в список / векторный аргумент (я нашел функции, которые это делают)

- вернуть функцию ´f (h) ´, в которой элементы arg являются аргументами. (Я не уверен, как это сделать)
}

1 Ответ

1 голос
/ 17 марта 2020

Я не уверен, что понимаю ваш вопрос, поскольку то, что вы написали, кажется правильным, но это то, что вы ищете?

somelistorvector <- list(a = 1, b = 2)

fct <- function(arg){
  arg[[1]] + arg[[2]]       # arg[["a"]] + arg[["b"]] could also work
}

fct(somelistorvector)

[1] 3

Также аргументы всегда будут a and b или элементом 1 and 2?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...