我在理解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))
有用?