[R] Some Programming Humor - Quine

Wolfgang Koller koller at isis.wu-wien.ac.at
Thu May 15 14:03:17 CEST 2003

Hi Barry! Hi helplist!

What about this piece of code?

quc1 <- "function () { STR <- "
quc2 <-
"substr(deparse(paste)[1],start=24,stop=24); "
quc3 <- "recstr <-
function(str=character(1),pos=195) "
quc4 <-
quc5 <- "str,substr(str,pos,1000),sep=STR);
quc6 <- "eval(parse(text=recstr("
qucode <-
qucode <-
quine <-

It passes the following quine-test:

> all(deparse(quine)==deparse(quine()))
[1] TRUE
> all(deparse(quine())==deparse(quine()()))
[1] TRUE

By the way, some questions that arose in this programming exercise:
a) is there a simpler way to do the assignment 
     STR <- "\""
   without using quotes?

b) what does this cryptic <environment: 034768AC> (or similar) mean that
does appear after the return value of quine() but not after the result of

c) is there a better way to check if two functions are identical than the
way suggested above?


Wolfgang Koller,  wolfgang.koller at wu-wien.ac.at
Forschungsinstitut für Europafragen
Wirtschaftsuniversität Wien
Althanstraße 39-45, 1090 Vienna, Austria
Tel: ++43/1/31336/4147  Fax: ++43/1/31336/758

More information about the R-help mailing list