Por algum motivo (irrelevante para esta pergunta), dei uma olhada rápida no pacote pryr do Hadley, onde me deparei com algo peculiar. Minha pergunta é sobre a função "where", cujo código é assim:
where
function (name, env = parent.frame())
{
stopifnot(is.character(name), length(name) == 1)
env <- to_env(env)
if (identical(env, emptyenv())) {
stop("Can't find ", name, call. = FALSE)
}
if (exists(name, env, inherits = FALSE)) {
env
}
else {
where(name, parent.env(env))
}
}
O que acho estranho está na quarta linha ( env <- to_env(env) ), que implica que existe uma função chamada "to_env". No entanto, não existe tal função, pelo menos nenhuma que eu consiga encontrar. Mesmo assim, o código funciona (por quê?). Tentei replicar a função com um nome diferente, mas o código não funciona (claro!).
Acho que estou esquecendo algo fundamental aqui, algo que não encontrei em toda a minha (não tão curta) carreira como R. Alguém pode me ajudar?