On 07/05/2014, 5:55 PM, Simon Urbanek wrote:

On May 7, 2014, at 5:41 PM, Hervé Pagès <hpa...@fhcrc.org> wrote:

On 05/07/2014 02:01 PM, peter dalgaard wrote:

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".

Are you saying that the tokenizer could be made smarter and recognize
"-2" as a token in "-2 ^ y", just because you didn't put a space between
"-" and "2"? So in "-2 ^ y" it would be token, but not in "- 2^y".
An therefore precedence would now depend on whether there is a space
after the minus or not, or something like that? I'm confused.


Nope, precedence would not change at all. "-2" and "- 2" are two different things - in case you didn't realize that spaces are 
important, try "a<-2" vs "a< -2". So, again, if -2 is a value then there is no precedence issue, since you have only operator in  
"-2 ^ y" namely "^". In "- 2 ^ y" you have two operators, so precedence matters.

Is there a language where "- 2^2" gives a different answer than "-2^2"? (Substitute ** or any other exponentiation operator for ^ if you like.) This is important, because I'd like to avoid ever attempting any important calculation in that language.

Duncan Murdoch

Cheers,
Simon



H.

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


--
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

Reply via email to