R 語言如何實現函數柯里化?

實際上有不少庫幫咱們實現這點: 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
相關文章
相關標籤/搜索