J'écris souvent des fonctions qui ont besoin de voir d'autres objets dans mon environnement. Par exemple:Écrire des fonctions dans R, en gardant à l'esprit la portée
> 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
Comme prévu, ces deux fonctions sont identiques parce que fn2
peut « voir » a et b quand il exécute. Mais chaque fois que je commence à tirer parti de cela, dans les 30 minutes environ, je finis par appeler la fonction sans l'une des variables nécessaires (par exemple, a ou b). Si je n'en profite pas, j'ai l'impression de passer inutilement des objets.
Est-il préférable d'être explicite sur ce qu'une fonction nécessite? Ou devrait-il être pris en charge via des commentaires en ligne ou d'autres documents de la fonction? Y a-t-il un meilleur moyen?