另一个函数内部的函数

时间:2018-06-28 05:45:18

标签: r

x<-2, y<-4
sum.xy <- function(x){
      function(y){x + y}
}

在上面的代码中,我不知道为什么sum.xy()仅给出非数字值,有人可以解释吗?

1 个答案:

答案 0 :(得分:1)

R中任何函数的输出都在return内部,或者如果没有return(如您的情况),则返回最后一个“打印对象”。在您的函数中,函数sum.xy返回一个函数:即函数function(y){x+y}

您可以这样测试:

x<-2; y<-4
sum.xy <- function(x){
  function(y){x + y}
}

class(sum.xy)
class(sum.xy(7))
sum.xy(7)

所以sum.xy(7)实际上是一个函数,对于给定的y返回y + 7。 如果您写sum.xy(7)(4),则返回7 + 4。

我还建议您看看at this chapter of advanced R