【发布时间】:2018-10-09 16:31:52
【问题描述】:
当一个函数已经定义但还没有被调用时,没有默认值的形式是否存在?如果存在,是存在于执行环境中,还是存在于函数定义所在的环境中,还是其他地方?
如果一个函数已定义但尚未调用,并且已为形式分配了默认值,那么该值是否存在?如果有,它存在于什么环境中?如果默认表达式的计算结果为常量,是否已将形式分配给该值,如果提供了值,则在调用函数时将其覆盖?如果不是,那个(固定的)默认值位于定义时刻和函数调用时刻之间,在什么环境下?
在调用函数并将实际值或默认值分配给形式后,传递到主体中,并在必要时进行范围和/或评估,形式是否继续存在?如果有,那么它们存在于什么环境中?
【问题讨论】:
-
我不知道你在问什么
-
对我来说,问题在问什么似乎很清楚。本质上:如果你有类似
fun <- function(x=2)的东西x是否存在于某种环境中?问题是关于那种变体。 -
AFAIK,它不存在。
-
@HongOoi - Andrew 的问题在 John Chambers 引用的上下文中是有道理的:“要理解 R 中的计算,有两个口号很有帮助:1) 存在的一切都是对象,2)发生是一个函数调用。”如果 R 中的一切都是对象,那么函数的形式也必须是对象。因此,询问有关它们所在环境的问题是合理的。
标签: r scope arguments function-definition