It seems odd/inconvenient to me that the "ignore.environment" argument of identical() only applies to closures (which I read as 'functions' -- someone can enlighten me about the technical differences between functions and closures if they like -- see below for consequences of my confusion). This is certainly not a bug, it's clearly documented, but it seems like a design flaw. It would certainly be convenient to be able to ignore differences in environments when comparing complex objects with lots of deeply nested formula and terms objects with environments ...
Can anyone suggest a reason for this design? Example: > f1 <- formula() > f2 <- formula() > environment(f2) <- new.env() > identical(f1,f2) [1] FALSE > identical(f1,f2,ignore.environment=TRUE) [1] FALSE Actually, maybe I don't understand how this is supposed to work since I thought this would be TRUE: > f1 <- function() {} > f2 <- function() {} > environment(f1) <- new.env() > environment(f2) <- new.env() > identical(f1,f2,ignore.environment=TRUE) ## FALSE Maybe the problem *is* that I don't know the difference between a function and a closure ... ? Ben Bolker ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel