[R] the less-than-minus gotcha

Martin Maechler maechler at lynne.stat.math.ethz.ch
Mon Feb 2 16:11:37 CET 2015


> All the more reason to use = instead of <-

Definitely not!

(As you were told, there are other drawbacks).

R does not have to look like C, it *is* different in many ways.
If you use a decent IDE for R, you get spaces around ' <- ' for
free: Both in ESS and in Rstudio, you can use   "[Alt] -"  
to produce the 4 characters ' <- '

{ [Alt] + "-") is called 'M--' in ESS / emacs which has even
  more options for " <- " and is fully configurable in its key
  bindings anyway. }

The '=' character has many uses in R  and using  ' <- '
for assignment makes the code "more expressive": It makes sense
to highlight the assignment op, but is a bit stupid to
highlight all "=" signs.  Further it can be nicely marked up by
a real "left arrow" by e.g. the listings LaTeX 
'listings' package, or the (oldish) 'a2ps'  GNU software.

Further, assignment is not commutative, and hence, 
there is a corresponding ` -> `  operator,
whereas the '=' is a commutative operator in mathematics, but
not when used as assignment op.

[ yes: "Flame war is on.  I'll stop reading R-help for a while.."
  ;-) ;-) ]


> -----Original Message-----
> From: R-help [mailto:r-help-bounces at r-project.org] On Behalf Of Ben Bolker
> Sent: Monday, 2 February 2015 2:07p
> To: r-help at stat.math.ethz.ch
> Subject: Re: [R] the less-than-minus gotcha

> Mike Miller <mbmiller+l <at> gmail.com> writes:

> > 
> > I've got to remember to use more spaces.  Here's the basic problem:
> > 
> > These are the same:
> > 
> > v< 1
> > v<1
> > 
> > But these are extremely different:
> > 
> > v< -1
> > v<-1
> > 

> This is indeed documented, in passing, in one of the pages you listed:

> http://tim-smith.us/arrgh/syntax.html

> Whitespace is meaningless, unless it isn't. Some parsing ambiguities 
> are resolved by considering whitespace around operators. See and
> despair: x<-y (assignment) is parsed differently than x < -y (comparison)!



More information about the R-help mailing list