【问题标题】:Circular definition of function函数的循环定义
【发布时间】:2020-05-06 20:35:53
【问题描述】:

我在函数参数上阅读了 question,其中包括 formals 函数,我很想知道函数是如何定义的。我使用了base:::formals,它给出了:

function (fun = sys.function(sys.parent())) 
{
    if (is.character(fun)) 
    fun <- get(fun, mode = "function", envir = parent.frame())
.Internal(formals(fun))
}

对我来说,不清楚这是如何工作的,因为在 formals 函数的定义中使用了 formals 函数。这对我来说似乎很矛盾。

【问题讨论】:

    标签: r function


    【解决方案1】:

    .Internal(formals(fun)) 调用了一个用 C 编码的内部 R 函数。恰好这个 C 内部函数也被命名为 formals。 所以它不会调用相同的函数,只是一个内部函数,恰好在内部命名为“formals”。

    cfhttps://stat.ethz.ch/R-manual/R-devel/library/base/html/Internal.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-08
      • 2020-03-14
      • 1970-01-01
      • 2021-05-10
      • 1970-01-01
      • 1970-01-01
      • 2014-05-20
      • 1970-01-01
      相关资源
      最近更新 更多