Scrivo spesso funzioni che necessitano di vedere altri oggetti nel mio ambiente. Ad esempio:Scrittura di funzioni in R, tenendo presente l'ambito dell'ottimizzazione
> 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
Come previsto, entrambe queste funzioni sono identiche perché fn2
può "vedere" A e B quando viene eseguito. Ma ogni volta che inizio a trarne vantaggio, entro circa 30 minuti finisco per chiamare la funzione senza una delle variabili necessarie (ad esempio a o b). Se non ne approfitto, allora mi sento come se stessi passando oggetti inutilmente.
È meglio essere espliciti su cosa richiede una funzione? O questo dovrebbe essere curato tramite commenti in linea o altra documentazione della funzione? C'è un modo migliore?