R函数:为什么表达式不能在回报中进行评估?

时间:2018-05-09 02:30:19

标签: r

f=function(x){return(list(y=x, z = y))}; f(1)

我想知道为什么上面的功能不起作用。非常感谢你!

1 个答案:

答案 0 :(得分:2)

它不起作用,因为函数list的参数不能"看"彼此,所以声明z = y不能"看" y = x

这让我想起了Lisp语言中letlet*的区别。 let为局部变量执行本地分配。他们无法看到"彼此。但let*使以下作业能够"看到"以前的作业。

为什么不这样做:

f=function(x){y <- x; return(list(y = x, z = y))}; f(1)