f=function(x){return(list(y=x, z = y))}; f(1)
我想知道为什么上面的功能不起作用。非常感谢你!
答案 0 :(得分:2)
它不起作用,因为函数list
的参数不能"看"彼此,所以声明z = y
不能"看" y = x
。
这让我想起了Lisp语言中let
和let*
的区别。
let
为局部变量执行本地分配。他们无法看到"彼此。但let*
使以下作业能够"看到"以前的作业。
为什么不这样做:
f=function(x){y <- x; return(list(y = x, z = y))}; f(1)