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?

The last few centuries of mathematics. Some clever people have been
thinking about defining the rules for writing concise algebraic
expressions that do not leave room for interpretation/ambiguities.

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

In -2^2, there is no question I see the latter. I'm a little biased
though, because, you know, I have some respect and admiration for the
tradition.

H.

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



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