R - "what is a function within a function"



上下文是我作为初学者仍在学习R。我可以解释一下"函数中的函数"的概念吗?

它的工作原理就像"输入"和"输出" - 你给一个 函数输入,另一个功能出来。

例如:

addsth<-function(xx){function(yy){xx+yy}}

xx的函数进去,yy
  • 的函数出来(yy函数里面,yy进去,xx+yy出来(

addsth(7)

  • 表示它是 7 的函数,7 进入,函数 (yy({xx+yy} 需要出来。 现在 7 "流入"需要出来的主体说 yy 去它的值为 7,当一切都准备好调用时,xx+yy 出来,这也意味着我必须定义 xx 才能运行。

该定义不能像 xx=9 那样作为值赋值,但它需要在函数中赋值以满足调用的要求。 因此: 现在因为 addsth(7( 只定义了一个函数, 它需要被赋予一个值 xx

afteradd<-addsth(7) 
afteradd(1000) 
returns 1007

非常感谢!

我不完全确定你的问题是什么。addsth()- 确切地说 - 是一个"关闭"。它本身的函数不会改变,但是">闭包的父环境是创建它的函数的执行环境"(Wickham( 哈德利·威克姆(Hadley Wickham(的《高级R》一书很好地解释了这一点,实际上可以在网上找到: http://adv-r.had.co.nz/Functional-programming.html

希望这有所帮助。

最新更新