[R] Some Programming Humor - Quine
    Barry Rowlingson 
    B.Rowlingson at lancaster.ac.uk
       
    Thu May 15 15:43:37 CEST 2003
    
    
  
> so my quine-version seems not to pass this test:
> 
>>identical(quine,quine())
> 
> [1] FALSE
> 
>>identical(quine(),quine()())
> 
> [1] FALSE
> 
> has this to do with the environment somehow being part of the function? I
> dont quite understand, since quine(), quine()(), quine()()() all look quite
> identical to me, save the information about the environment that is added
> after the return value.
> 
  Thats right. Even if the environment isn't printed, its still there, 
and so the quine fails the 'identical' test.
  If you can adjust your code to return an object with the same 
environment as itself then it will work
 > q2 <- quine()
 > identical(q2,quine)
[1] FALSE
 > environment(q2) <- environment(quine)
 > identical(q2,quine)
[1] TRUE
  In fact all you need to do is set the environment to globalenv(). I'm 
sure a minor adjustment to your script can fix this!
Baz
    
    
More information about the R-help
mailing list