Мне трудно понять, как работает R, и я начинаю думать, что это не так.
Я использую карри-функцию g
, которую я хочу векторизовать и получить несколько значений.Моя первая попытка была сделать h1
, который не работал.Тем не менее, h2
работает, но я не понимаю, почему.
# Example function
f <- function(a, b) { return(prod(a, b)) }
# Curried function
g <- Curry(f, b=2)
# Vectorize functions
h1 <- Vectorize(g)
h2 <- Vectorize(function(x) return(g(x)))
# Result values
h1(c(1,2,3)) # returns unexpected result 12
h2(c(1,2,3)) # returns expected result c(2, 4, 6)
Почему работает g
внутри function(x) return(g(x))
?