Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R函数:为什么表达式可以';是否无法在回报期内进行评估?_R - Fatal编程技术网

R函数:为什么表达式可以';是否无法在回报期内进行评估?

R函数:为什么表达式可以';是否无法在回报期内进行评估?,r,R,我想知道为什么上面的功能不起作用。多谢各位 它不起作用,因为函数list的参数不能“看到”彼此,所以语句z=y不能“看到”y=x 这让我想起了Lisp语言中let和let*的区别。 让为局部变量进行局部赋值。他们不能“看见”对方。但是让*让下面的作业能够“看到”前面的作业 为什么不做: f=function(x){return(list(y=x, z = y))}; f(1) f=function(x){yy没有定义。这在函数之外也不起作用list(y=1,z=y)y是列表中某个元素的名称。它

我想知道为什么上面的功能不起作用。多谢各位

它不起作用,因为函数
list
的参数不能“看到”彼此,所以语句
z=y
不能“看到”
y=x

这让我想起了Lisp语言中
let
let*
的区别。
为局部变量进行局部赋值。他们不能“看见”对方。但是
让*
让下面的作业能够“看到”前面的作业

为什么不做:

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

f=function(x){y
y
没有定义。这在函数之外也不起作用
list(y=1,z=y)
y
是列表中某个元素的名称。它毫无意义,会让代码难看,但如果你真的坚持让它成为一行,你可以编写
list(y=(y Try
f我看到过类似这样的代码:
f=function(x){return(list)(y@42)是
list(y)的输出
f=function(x){y <- x; return(list(y = x, z = y))}; f(1)