On Tue, 18 Nov 2008, Peter Dalgaard wrote:
Martin Maechler wrote:
"PD" == Peter Dalgaard <[EMAIL PROTECTED]>
on Tue, 18 Nov 2008 00:00:40 +0100 writes:
PD> Martin Maechler wrote:
>> But in spite of all that I agree that I'd have liked
>> `FALSE` <- <whatever> to signal an error about the fact
>> that it is a reserved word.
>>
RT> This is clearly not a very important issue, but it might
RT> bear some thinking about.
>>
>> Yes. I'd propose that R-core look into how to make
>> assignment to a reserved word an error.
PD> I disagree. In a sense, this is the point of having the
PD> backtick operator: allowing you to work with names that
PD> would otherwise be syntax errors (notice that such names
PD> are sometimes created outside your control, e.g. via
PD> column names in data frames). If you start disallowing
PD> some of them again, well, that way lies madness!
No, no. I'm not against allowing names that are otherwise syntax
errors. They were always possible via assign().
I just am convinced we should not allow reserved words.
Please unconvince yourself then... You are solving a problem that isn't
there: In R, you can assign to `FALSE` and access it as `FALSE`. You can
not access it as FALSE because that is a keyword and you cannot assign
to FALSE either.
{ S / S-plus does not either and gives a nice error message:
S> assign("FALSE", TRUE)
Problem: The name "FALSE" is reserved -- assignments to it are not allowed
}
But FALSE is not a keyword in S. In R this would correspond to locking
down F and T.
I think both F and FALSE are 'keywords' in S, as that appears to say.
There's another issue, namely that some keywords do have associated
functions; e.g., `if` exists as a variable, and walls do come tumbling
down if you redefine it (to a different function). However, that is a
completely different thing, more related to redefining "+".
(Incidentally, how hard would it be to ensure that such symbols were
always looked up in the base namespace?).
You mean they are primitives, so 'variable' for some meaning such as
'object'? The obvious idea is for the parser to do the lookup, but then
the deparser would need to be altered. Otherwise the evaluator needs to
special-case them, with a slight performance hit.
--
O__ ---- Peter Dalgaard Ă˜ster Farimagsgade 5, Entr.B
c/ /'_ --- Dept. of Biostatistics PO Box 2099, 1014 Cph. K
(*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918
~~~~~~~~~~ - ([EMAIL PROTECTED]) FAX: (+45) 35327907
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
--
Brian D. Ripley, [EMAIL PROTECTED]
Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
University of Oxford, Tel: +44 1865 272861 (self)
1 South Parks Road, +44 1865 272866 (PA)
Oxford OX1 3TG, UK Fax: +44 1865 272595
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel