我最近想到了函数的...
参数,并注意到R不允许检查对象的类。
f <- function(...) {
class(...)
}
f(1, 2, 3)
## Error in class(...) : 3 arguments passed to 'class' which requires 1
现在加引号
“要理解R中的计算,两个口号会有所帮助:
•存在的一切都是对象。 •发生的一切都是 函数调用。“
—约翰·钱伯斯
在我的脑海中,我想知道:...
是哪种物体?
一个有趣的问题!
Dot-dot-dot ...
是一个对象(John Chambers是对的!),它是一种配对表。好吧,我搜索了文档,因此想与您分享:
“ ...”对象类型存储为配对列表类型。可以通过C代码以通常的成对列表方式访问“ ...”的组件,但在解释代码中不容易将其作为对象进行访问。该对象可以捕获为列表。
[Another chapter详细定义配对列表:
配对列表对象类似于Lisp的点对列表。
对列表使用R语言的方式与通用矢量(“列表”)完全相同。
Generic and Dotted Pairs的帮助上说:
R中的几乎所有列表内部都是通用向量,而传统的点对列表(如LISP中的列表)仍然可用,但用户很少看到(除了函数的形式)。
[这里有一个不错的摘要,位于Stack Overflow!