Tôi thường viết các hàm cần xem các đối tượng khác trong môi trường của mình. Ví dụ:Chức năng viết trong R, giữ phạm vi ghi nhớ
> 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
Như mong đợi, cả hai chức năng này giống hệt nhau vì fn2
có thể "xem" a và b khi thực thi. Nhưng bất cứ khi nào tôi bắt đầu tận dụng điều này, trong vòng khoảng 30 phút, tôi sẽ kết thúc cuộc gọi mà không có một trong các biến cần thiết (ví dụ: a hoặc b). Nếu tôi không tận dụng điều này, thì tôi cảm thấy như tôi đang đi qua những đồ vật không cần thiết.
Tốt hơn là phải rõ ràng về chức năng yêu cầu? Hoặc điều này có được thực hiện thông qua nhận xét nội tuyến hoặc tài liệu khác của hàm không? Có cách nào tốt hơn?