实际上有不少库帮咱们实现这点: https://cran.r-project.org/we...html
如今咱们考虑本身实现一个。参考 https://stackoverflow.com/que... 和以前的 JavaScript 实现 很快就能够本身写出来了:git
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)); };
测试:github
Curry(function(x, y, z) { return(x + y + z); }, 3, 2)(c(1, 2, 3))(1); # [1] 4 5 6