このブログは、旧・はてなダイアリー「檜山正幸のキマイラ飼育記 メモ編」(http://d.hatena.ne.jp/m-hiyama-memo/)のデータを移行・保存したものであり、今後(2019年1月以降)更新の予定はありません。

今後の更新は、新しいブログ http://m-hiyama-memo.hatenablog.com/ で行います。

new.env()のイヤーなデフォルト値(誤解だった)

[追記]これは誤解[/追記]


> new.env
function (hash = TRUE, parent = parent.frame(), size = 29L)
.Internal(new.env(hash, parent, size))


>

関数内で、new.env()すると、親スコープが親フレームになる。これはオカシイだろうよ。

.GlobalEnvのparent.frame()がループしているのは、なんか変な事情があるのか?

[追記]デフォルト値を設定するためのコードは、新しく作られた当該関数のフレーム上で実行されるようだ。したがって、parent.frame()は、new.env()の親フレートなり、new.env()を呼び出した関数のフレームとなり、あっている[/追記]