r - 另一个函数内部的函数
问题描述
x<-2, y<-4
sum.xy <- function(x){
function(y){x + y}
}
在上面的代码中,我不明白为什么sum.xy()
只给出一个非数值,有人能解释一下吗?
解决方案
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。
我还建议您看一下高级 R 的这一章。
推荐阅读
- coq - _the_hidden_goal_ 错误信息是什么意思
- android-studio - 如何在 Android Studio 中扩展我的工作场所?
- python - 如何在 eel python 中设置最小窗口大小
- c# - 关闭套接字并重新启动应用程序后出现“正在使用套接字”错误
- laravel - 如何阻止数据在具有 Laravel 应用程序的 AWS 代码管道上被删除
- python - 使用 matplotlib 保存绘图时图像被合并到单个绘图中
- javascript - 将站点显示调整为设备比例(100%、125%.. 或 S/M/L ..)
- python - Pyplot:如何制作具有非线性比例的颜色条?
- excel - 无法正确将 xlsx 转换为 csv
- python-3.x - 如何追踪此合并功能中的错误?