私はAdvanced RをHadleyが読んでいます。私は第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
リストのように聞こえます。ではない?
ご協力いただきありがとうございます。前もって感謝します。