什么是NULL环境?

Ali*_*yhl 8 environment r

如果我检查sqrt函数的环境,我得到NULL:

> environment(sqrt)
NULL
Run Code Online (Sandbox Code Playgroud)

另一方面,split在基础包中也可以找到的功能具有以下环境:

> environment(split)
<environment: namespace:base>
Run Code Online (Sandbox Code Playgroud)

为什么这两个函数有不同的环境,NULL环境是什么意思?

Nic*_*edy 9

sqrt是一个原始函数,没有R代码.Per Hadley Wickham的高级R页面:

原始功能

规则有一个例外,即函数有三个组件.原始函数,如sum()直接调用C代码.Primitive()并且不包含R代码.因此他们的formals(),body()environment()都是NULL.