[R] How to comment in R

Duncan Murdoch murdoch at stats.uwo.ca
Wed Feb 11 21:11:27 CET 2009

On 2/11/2009 2:27 PM, Wacek Kusnierczyk wrote:
> Duncan Murdoch wrote:
>> On 2/11/2009 1:21 PM, Stavros Macrakis wrote:
>>> On Wed, Feb 11, 2009 at 12:32 PM, Greg Snow <Greg.Snow at imail.org> wrote:
>>>> ...The c-style of /* */ allows both types and you can comment out
>>>> part of a line, but it is not simple to match and has its own
>>>> restrictions.  Friedl in his regular expressions book takes 10 pages
>>>> to develop a pattern to match these (and the final pattern is almost
>>>> 2 full lines of text in the book).  And this is without allowing
>>>> nesting....
>>> Though there is a real debate about the value of multiline, possibly
>>> nested, comments, the regular expression argument is a red herring.
>>> Lexical analysis of multiline comments is a solved problem (and not a
>>> particularly difficult one!), and matters only to language and editor
>>> implementors.  Emacs handles them with no problem.
>> I agree about that.  I think the lack of multiline comments comes from
>> design considerations rather than implementation ones.   They're just
>> not needed, and having two types of comments would lead to weird
>> interactions, e.g. is the block comment closed in the lines below?
>>   /*
>> #  */
> it's still a simple design decision which, once made, can be implemented
> coherently.

I agree it's a design decision and once made implementation would be 
easy, but I don't agree that it's a simple design decision.  If it was, 
you'd be able to tell me the obvious answer to my question.  If the 
answer isn't obvious, then it's a source of errors in programs when 
people assume the wrong behaviour.

In another message, you pointed out the ugly construct

x <- "
# not a comment

which arises because R allows multi-line string literals, and also gives 
priority to string content over # comments.  This is a bad design, in my 
opinion.  (There shouldn't be multi-line string literals.) You probably 
haven't studied Rd syntax as closely as I have lately, but in an Rd 
file, # comments are treated as R treats them (i.e. within a string they 
don't do anything), % comments are always in effect.  You should see how 
many people get confused by the handling of % comments in Rd files.  But 
that's not something we can change:  there are something like 100000 Rd 
files on CRAN.

So if the behaviour isn't very obvious in cases like the one quoted 
above, and if the new syntax doesn't add any new expressiveness, I would 
be opposed to adding it.

Duncan Murdoch

More information about the R-help mailing list