Często piszę funkcje, które muszą widzieć inne obiekty w moim środowisku. Na przykład:Pisanie funkcji w R, mając na uwadze ustalanie zakresu
> 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
Zgodnie z oczekiwaniami, obie te funkcje są identyczne, ponieważ fn2
„widzi” a i b, gdy wykonuje. Ale gdy tylko zacznę to wykorzystywać, w ciągu około 30 minut kończę wywoływanie funkcji bez jednej z niezbędnych zmiennych (np. A lub b). Jeśli nie wykorzystam tego, to czuję, że niepotrzebnie omijam przedmioty.
Czy lepiej sprecyzować, czego wymaga funkcja? Czy też powinno to być załatwione za pomocą wstawionych komentarzy lub innej dokumentacji funkcji? Czy istnieje lepszy sposób?