Я часто пишу функции, которые должны видеть другие объекты в моей среде. Например:
> a <- 3
> b <- 3
> x <- 1:5
> fn1 <- function(x,a,b) a+b+x
> fn2 <- function(x) a+b+x
> fn1(x,a,b)
[1] 7 8 9 10 11
> fn2(x)
[1] 7 8 9 10 11
Как и ожидалось, обе эти функции идентичны, поскольку fn2
может "видеть" a и b, когда она выполняется. Но всякий раз, когда я начинаю использовать это, через 30 минут я вызываю функцию без одной из необходимых переменных (например, a или b). Если я не воспользуюсь этим, тогда я чувствую, что я пропускаю объекты без необходимости.
Лучше ли быть явным о том, что требуется функции? Или это должно быть учтено посредством встроенных комментариев или другой документации по функции? Есть ли лучший способ?