[R] Noob question re: writing while loops on one line

John McKown john.archie.mckown at gmail.com
Sun Feb 15 21:30:23 CET 2015


I guess my C background has messed me up a bit for R. Well, recovering from
APL was worse. I lost all sense of hierarchy of operations.
On Feb 15, 2015 2:19 PM, "Duncan Murdoch" <murdoch.duncan at gmail.com> wrote:

> On 15/02/2015 11:20 AM, John McKown wrote:
> > On Sun, Feb 15, 2015 at 9:54 AM, Duncan Murdoch
> > <murdoch.duncan at gmail.com <mailto:murdoch.duncan at gmail.com>>wrote:
> >
> >     On 15/02/2015 10:08 AM, Sun Shine wrote:
> >     > Thanks John: understanding it as a line return makes sense!
> >
> >     But it's not right.  This is one statement, and it returns the value
> 3:
> >
> >     1 +
> >     2
> >
> >     This is an error:
> >
> >     1 + ; 2
> >
> >     The semicolon is a statement separator, not a line return.
> >
> >
> > ​Technically speaking a semicolon is a statement terminator, not a
> > statement separator. In the case of the R language, that is a "nit". In
> > the case of Pascal, it is a big difference.
> >
> >
> >
> >     Duncan Murdoch
> >
> >
> > ​This is one reason why I _always_ use the semi-colon. It is _never_
> > really wrong to do so. It may be _unnecessary_ in some case. It is also
> > why I always use <- as the assignment operator (well, that and because I
> > like it from my APL background). If there are two ways to express
> > something, and one of them is _always_ correct whereas the other _might
> > not_ be correct in some cases, then I think doing the former is simply
> > "better form". But, then, I'm anal about other things to. And that
> > doesn't apply to interactive use. I don't terminate my interactive
> > statements with a semi-colon all the time. Just most of the time. Of
> > course, I'm a touch typist too and so it is not really much of a problem
> > for me.​
>
> I don't use semicolons unless they are necessary, and I don't like it
> when my students do.  For example, you could be misled by code like this:
>
> x = 1;
> y = 2;
> verylongname = x + y
>     + 1;
>
> If this were C, verylongname would end up with the value 4.  If you read
> it and only see 3 "terminators", you might think R is the same, but it's
> not.  R sees that as 7 different statements:  two on the 1st, 2nd and
> 4th lines (in each case the second statement is empty), and one
> statement on line 3.  So verylongname ends up with the value 3, not 4.
>
> Cues to remind you what language you're using are a good thing.  That's
> one reason to use <- (which I always do) instead of =, and not to use
> unnecessary semicolons.
>
> Duncan Murdoch
>
> >
> >
> >
> > --
> > He's about as useful as a wax frying pan.
> >
> > 10 to the 12th power microphones = 1 Megaphone
> >
> > Maranatha! <><
> > John McKown
>
>

	[[alternative HTML version deleted]]



More information about the R-help mailing list