[R] Some Programming Humor - Quine

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


At 13:17 15.05.03 +0100, Prof Brian Ripley wrote:
>On Thu, 15 May 2003, Wolfgang Koller wrote:
>
>> 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?
>
>Not simpler, but '"' is probably easier to read.
This version still uses a quote --- the one in the middle. With "simpler" I
meant in comparison with the version I used in quine()-code, which is
admittedly ugly and depends on the source code of paste(), but does not use
quotes (nor double quotes or whatever ' and " are correctly named in English):
  STR <- substr(deparse(paste)[1],start=24,stop=24)

Maybe something analogous to letters[] would be a nice additional feature
in R? I have needed something like that on several occasions before.

>
>> 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
>> quine?
>
>All R functions have environments.  This is not printed when the function
>is printed if and only if the environment is the user's workspace.
>The number is a Hex address of the environment, and you will see it when 
>functions are defined or generated inside functions.
>
>> c) is there a better way to check if two functions are identical than the
>> way suggested above?
>
>?identical

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.

Wolfgang
-------------------------------------------------
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
http://fgr.wu-wien.ac.at/institut/ef/ief-home.htm




More information about the R-help mailing list