在Norman Matloff的《R程序设计艺术》第307页上,作者说:
这段话的背景是对一段代码片段进行评论。
for()
实际上是一个函数。
for (i in 1:length(x)) z[i] <- x[i] + y[i]
作者评论
尽管在语法上循环看起来并不起眼,但实际上
for()
是一个函数。
我的理解是他的意思是for()
就像+
一样是一个函数(可调用对象)。我们可以像标准函数一样调用+
,比如
"+"(3 ,5) # 8
我在C/C++和Python方面有一定的背景,并注意到这些语言之间存在几个微妙的区别。例如,
return
在R中是一个函数,而不是语句,因此我们必须使用括号写成return(1)
。
回到我的问题:在R中,for
是一个函数吗?
感谢任何澄清。
for
是用 C 语言编写的。值得一看它的源代码以理解其中的原因。这可能不是一个非常琐碎的任务。 - NelsonGonis.function(\
for`)和
is.primitive(`for`)可以工作并显示出 R,如果被询问,会将
for` 视为原始函数。 - TimTeaFan