我正在阅读Hadley的Advanced R。我在第10章 - “函数式编程”。这也可以在:http://adv-r.had.co.nz/Functional-programming.html下标题为“在全球环境下移动功能列表”。将功能复制到全球环境
下面的代码:
simple_tag <- function(tag) {
force(tag)
function(...) {
paste0("<", tag, ">", paste0(...), "</", tag, ">")
}
}
tags <- c("p", "b", "i")
html <- lapply(setNames(tags, tags), simple_tag)
我的问题是,我不知道为什么,他说“我已经把功能列表,因为我不想让他们成为所有可用的时间。现有R函数和HTML标记之间存在冲突的风险很高...最后,您可以使用list2env()
将函数复制到全局环境。您可以通过在完成后删除函数来撤消此功能。“
这是因为如果我运行下面的代码:
exists("html",envir = globalenv())
上面的代码返回TRUE
,这意味着html
已经存在于全球环境。所以,我不太确定他为什么这么说:“......你可以用......将功能复制到全球环境中”。我认识到他不会错。所以,我想为专家发布这个问题。
而且,如果我跑:
where("html")
我得到:
<environment: R_GlobalEnv>
attr(,"path")
从上面的代码,这听起来像html
名单是在全球环境了。不是吗?
我很感激任何帮助。提前致谢。