首页 > 解决方案 > 在 R 中向量化一个柯里化函数

问题描述

我无法理解 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))工作?

标签: r

解决方案


推荐阅读