首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >`for`是R中的一个函数吗?

`for`是R中的一个函数吗?
EN

Stack Overflow用户
提问于 2019-05-20 05:55:42
回答 1查看 0关注 0票数 0

页面的诺曼·马特夫的307 [R编程的艺术,作者说

for() 事实上,它是一种功能。

上下文是对一段代码片段进行评论

代码语言:javascript
复制
for (i in 1:length(x)) z[i] <- x[i] + y[i]

作者评论

虽然在语法上循环看起来无害,但for()实际上是一个函数。

我的理解是,他所说的for()是一个函数,就像+一个函数(可调用对象)。假设我们可以调用+标准函数调用方式

代码语言:javascript
复制
"+"(3 ,5)  # 8

我有C / C ++和Python的背景,我注意到语言之间存在一些细微差别。例如,

  • return是R中的函数,而不是语句,因此我们必须return(1)用括号写。

回到我的问题:forR中的函数是什么?

谢谢你的任何澄清。

EN

回答 1

Stack Overflow用户

发布于 2019-05-20 15:46:19

for是一个函数,但是for解析器也将符号识别为我们可以用来调用函数的方便语法的符号部分for。这两个不同的东西方便地命名相同(注意,这in不是一个功能)。

代码语言:javascript
复制
is.function(`for`)
#> [1] TRUE

x <- y <- z <- 1:3
for (i in 1:length(x)) z[i] <- x[i] + y[i]
z
#> [1] 2 4 6

x <- y <- z <- 1:3
`for`(i, 1:length(x), z[i] <- x[i] + y[i])
z
#> [1] 2 4 6

reprex包创建于2019-05-19 (v0.2.1)

以类似的方式,if (cond) foo else bar语法映射到函数if,但else不是函数。

所有其他控制流构造(参见?Control)也是函数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100006754

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档