2015-07-20 67 views
8

如果我检查sqrt功能的环境中,我得到NULL什么是NULL环境?

> environment(sqrt) 
NULL 

在另一方面,该功能split这也是在基础包中发现有环境:

> environment(split) 
<environment: namespace:base> 

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

回答

9

sqrt是一个原始函数,没有R代码。每Hadley Wickham's advanced R页:

基本功能

有一个例外,其功能有三个组成部分的规则。原始函数,如sum(),直接调用 C代码与.Primitive()并且不包含R代码。因此 其formals(),body()environment()都是NULL