上下文是我作为初学者仍在学习R。我可以解释一下"函数中的函数"的概念吗?
它的工作原理就像"输入"和"输出" - 你给一个 函数输入,另一个功能出来。
例如:
addsth<-function(xx){function(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
希望这有所帮助。