On 05/07/2014 02:45 PM, Simon Urbanek wrote:

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? ;))

BTW I don't see anything deep here, except maybe for the rabbit hole
you've put yourself in. Just sayin'...

H.


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



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

Reply via email to