On May 7, 2014, at 5:17 PM, Hervé Pagès <hpa...@fhcrc.org> wrote: > On 05/07/2014 12:52 PM, Simon Urbanek wrote: >> On May 7, 2014, at 3:37 PM, Hervé Pagès <hpa...@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@r-project.org mailing list >>>>> https://stat.ethz.ch/mailman/listinfo/r-devel >>>> >>>> ______________________________________________ >>>> R-devel@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: hpa...@fhcrc.org >>> Phone: (206) 667-5791 >>> Fax: (206) 667-1319 >>> >>> ______________________________________________ >>> R-devel@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: hpa...@fhcrc.org > Phone: (206) 667-5791 > Fax: (206) 667-1319 > ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel