precedence (was 'historical NA question')
On May 7, 2014, at 5:17 PM, Herv? Pag?s <hpages at fhcrc.org> wrote:
On 05/07/2014 12:52 PM, Simon Urbanek wrote:
On May 7, 2014, at 3:37 PM, Herv? Pag?s <hpages at fhcrc.org> wrote:
No big deal. These things can be tricky: https://stat.ethz.ch/pipermail/r-devel/2006-January/036022.html Sorry I couldn't resist ;-)
Yeah, but that's just yet another trip down the rabbit hole - why is -2 parsed as `-`(2) and not a single constant?
You wouldn't want -2 to be parsed as a single constant exactly for the reason that you wouldn't want -2^2 to return 4. Having -2^2 treated the same way as -x^2 is a sane feature.
On what grounds? -2 is one value - negative two - and if you square it, you get four - so that's not even a question of precedence. It's just a matter of interpretation: do you see the constant -2 or do you see the constant 2 with unary minus? When you print -2 you get -2 - and that's not a positive constant with an unary minus - or is it? ;) - aaah, will we ever know ? R is good at hiding that subtlety from us:
a = quote(-2^2) b = bquote(.(-2)^2) a
-2^2
b
-2^2
eval(a)
[1] -4
eval(b)
[1] 4
Is there a way to express a negative constant in R? Hmm?
Maybe some people have some use cases for this (speed ?).
Wrong tree ;). You kick-started the trip but failed to follow the path it takes into the depths of the human mind ? :P (or was that computer mind? ;)) Cheers, Simon
Personally I don't. Of course it would require a special syntax, something that would probably be as ugly and confusing as the L suffix used for integer constants (L means long int in C). H.
On 05/07/2014 09:16 AM, John Chambers wrote:
On 5/7/14, 5:21 AM, Therneau, Terry M., Ph.D. wrote:
Hadley asked about the Blue book; my shelf still has the earlier brown book Becker and Chambers, 1984, S: An interactive environment for data analysis and graphics.
Historically interesting, but there was never a guarantee that Version 3 of S (the "blue book") was back-compatible with earlier versions. We gave users some help in "getting on the road" to converting, that was all (see Appendix 4 to the blue book). For that one brief moment, we felt free to innovate. John
The manual page for precedence is $ component select %x special operator - unary minus : sequence operator ^ ** exponentiation * / mult/div + - add/sub < > <= >= == != logical ! not & | and/or <- -> assignment Terry Therneau
______________________________________________ R-devel at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
______________________________________________ R-devel at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
-- Herv? Pag?s Program in Computational Biology Division of Public Health Sciences Fred Hutchinson Cancer Research Center 1100 Fairview Ave. N, M1-B514 P.O. Box 19024 Seattle, WA 98109-1024 E-mail: hpages at fhcrc.org Phone: (206) 667-5791 Fax: (206) 667-1319
______________________________________________ R-devel at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
-- Herv? Pag?s Program in Computational Biology Division of Public Health Sciences Fred Hutchinson Cancer Research Center 1100 Fairview Ave. N, M1-B514 P.O. Box 19024 Seattle, WA 98109-1024 E-mail: hpages at fhcrc.org Phone: (206) 667-5791 Fax: (206) 667-1319