作者在这里使用的这个函数定义样式是什么?

时间:2014-09-26 18:51:08

标签: r

学习R,R编程的艺术。 直到大约1/2,他才简单地定义了一个这样的新函数:

fnc=function(a,b){
return(a) }

但现在正在做这样的事情:

> g
function() {
t <- function(x) return(x^2)
return(t)
}

> g()
function(x) return(x^2)

这与说法相同:

g=function(x) return(x^2)

第一个街区的g是多少? 运行他所拥有的确切代码并不适用于我,它只是打印出我所拥有的代码。

谢谢大家。

1 个答案:

答案 0 :(得分:1)

如果从book到SO的代码转换准确,作者正在定义一个返回函数的函数:

g <- function() {
  t <- function(x) return(x^2)
  return(t)
}

我们可以看到,如果我们执行它:

g()

## function(x) return(x^2)
## <environment: 0x7fd7c5aa7d10>

而且,我们可以使用这样一个事实:它通过将参数传递给它返回的函数来返回一个函数:

g()(10)
## 100

或者这样:

squareIt <- g()
squareIt(10)
## 100