在递归期间每次重置变量外部函数

时间:2015-06-09 16:31:07

标签: r

我是R的初学者,所以请原谅我是否有关于R的关键编程结构,我不理解。

我有以下代码:

tab_level <- 0

print_tree <- function (node_index) {
    cat (tab_level)
    cat ("\n")
    # Past the tree domain
    if (node_index >= 2^depth ) {
        tab_level <- tab_level - 1
        cat ("\n")
        return()
    }

    # Print the value in the node
    # Tabs

    #cat(node_index)
    for (i in 0:tab_level) {
        cat("\t")
    }

    tab_level <- tab_level + 1

    print_tree(2*node_index)
    print_tree(2*node_index + 1)
}
print_tree (1)

但是,当我这样做并读取cat输出时,tab_level在输出中每次都为0。我是否正确理解R,以及它如何与变量范围一起工作?我来自Java背景,如果这有帮助的话,我假设它与Java类似。

0 个答案:

没有答案