实际上有很多库帮我们实现这点: https://cran.r-project.org/we...
现在我们考虑自己实现一个。参考 https://stackoverflow.com/que... 和之前的 JavaScript 实现 很快就可以自己写出来了:
Curry <- function(f, len, ...) {
origList <- list(...);
ret <- function(...) {
cur <- c(list(...));
if (length(cur) < len) {
return(function(...) {
return(do.call(ret, c(cur, list(...))));
});
}
return(do.call(f, cur));
};
return(do.call(ret, origList));
};
测试:
Curry(function(x, y, z) { return(x + y + z); }, 3, 2)(c(1, 2, 3))(1);
# [1] 4 5 6
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。