【发布时间】:2011-08-12 17:16:27
【问题描述】:
在 R 中编写函数的正常方法(据我所知)是避免副作用并从函数返回值。
contained <- function(x) {
x_squared <- x^2
return(x_squared)
}
在这种情况下,返回从输入到函数中计算的值。但变量x_squared 不可用。
但是如果你需要违反这个基本的函数式编程原则(我不确定 R 对这个问题有多严重)并从函数中返回一个对象,你有两个选择。
escape <- function(x){
x_squared <<- x^2
assign("x_times_x", x*x, envir = .GlobalEnv)
}
返回对象x_squared 和x_times_x。一种方法比另一种更好吗?为什么会这样?
【问题讨论】:
标签: r functional-programming global-variables