On 30/05/2015 10:35 AM, Munawar Cheema wrote:
> I am puzzled by the following seemingly contradictory calls to the function
> identical. Below is a minimal example, that reproduces them:
> 
>> sessionInfo()
> R version 3.2.0 (2015-04-16)
> Platform: x86_64-apple-darwin13.4.0 (64-bit)
> Running under: OS X 10.9.5 (Mavericks)
> 
> locale:
> [1] C
> 
> attached base packages:
> [1] stats     graphics  grDevices utils     datasets  grid      methods
> [8] base
> 
> loaded via a namespace (and not attached):
> [1] compiler_3.2.0 tools_3.2.0    memoise_0.2.1  digest_0.6.8
>> readLines("tmp.R")
> [1] "if (identical(function(x)1,function(x)1)) cat(\"Identical!\\n\")
> else cat(\"Not Identical!\\n\")"
>> sys.source("tmp.R", envir=new.env(parent=baseenv()))
> Identical!
>> if (identical(function(x)1,function(x)1)) cat("Identical!\n") else cat("Not 
>> Identical!\n")
> Not Identical!
> 
> 
> 
> Can anyone explain why I get a false value from the command line but true if I
> use sys.source?
> 

sys.source has keep.source = getOption("keep.source.pkgs"), which
defaults to FALSE.  Normal evaluation uses getOption("keep.source"),
which defaults to TRUE.

You can see the difference if you save the functions, and use str(), e.g.

f <- function(x)1
g <- function(x)1

str(f)
str(g)

Duncan Murdoch

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to