子功能

必須在該函式內定義函式內呼叫的函式(即子函式),以訪問本地環境中定義的任何變數而不傳遞。

這失敗了:

bar <- function() {
    z <- x + y
    return(z)
}
    
foo <- function() {
    y <- 3
    z <- bar()
    return(z)
}

foo()

bar() 出錯:找不到物件’y'

這有效:

foo <- function() {
    
    bar <- function() {
        z <- x + y
        return(z)
    }
    
    y <- 3
    z <- bar()
    return(z)
}
    
foo()

4