[R] How to comment in R
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
>>> 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
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.
More information about the R-help