全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
1059 4
2019-10-10
举个例子
> f<-function(x){
x+1
}
> g<-function(x){
   f(x+3)
}
> g(4)
[1] 8
上面的执行过程是怎样的?我的理解是g(4)调用g函数,其中参数x=4,调用f函数,其中参数x=x+3,然后执行x+1,进行参数传递x=x+3,则x+1=x+4,然后查找x的值,根据词法作用域,f的执行环境没有x的值,到f的封闭环境中查找,即是全局环境查找x的值,也没有找到,那么结果应该是报错。正确的理解应该是怎样求大佬解析



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2019-10-11 09:13:31
g(4)调用应为,将4传递给g的function中的x,结果应为7。

复制代码
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2019-10-11 09:58:30
steventung 发表于 2019-10-11 09:13
g(4)调用应为,将4传递给g的function中的x,结果应为7。
g函数调用了f函数 f(x+3),不是x+3
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2019-10-11 10:09:12
不就是f(7)吗
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2019-10-11 12:57:33
jinkelazzz 发表于 2019-10-11 10:09
不就是f(7)吗
你的意思是 在执行g函数时,调用f函数,先开始计算x+3=7,在进行参数传递?但这个好像不符合惰性求值?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群