On 07 May 2014, at 21:52 , Simon Urbanek <simon.urba...@r-project.org> 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? Is there a way to express a > negative constant in R? Hmm… > It's painful, but > bquote(.(-2)^2) -2^2 > eval(bquote(.(-2)^2)) [1] 4 > bquote(.(-2)^2)[[2]] [1] -2 > mode(bquote(.(-2)^2)[[2]]) [1] "numeric" The difficulty is that the tokenizer, which recognizes language elements before the parser goes to work on the grammatical structure, is unable to distinguish the -2 in "-2 + 2" from the one in "-2 ^ y". And since constants are generated by the tokenizer, negative ones are not generated. I don't think it is completely out of reach for the parser to recognize the pattern "unary minus a numeric constant" and fold it into a constant of the opposite sign, but I'm not volunteering... (and anyways, it is part of the bigger issue of general constant folding --- I suppose that Luke has a handle on that.) > >> 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 >> > > ______________________________________________ > R-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel -- Peter Dalgaard, Professor, Center for Statistics, Copenhagen Business School Solbjerg Plads 3, 2000 Frederiksberg, Denmark Phone: (+45)38153501 Email: pd....@cbs.dk Priv: pda...@gmail.com ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel