實際上有不少庫幫咱們實現這點: 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