[R] R is GNU S, not C.... [was "how to get or store ....."]

Jan T. Kim jtk at cmp.uea.ac.uk
Wed Dec 7 19:48:03 CET 2005

On Tue, Dec 06, 2005 at 04:21:01PM +0000, Patrick Burns wrote:
> I don't put in extraneous ';' because I maybe get a
> blister on my little finger.
> I suspect that those who find the semi-colons ugly in
> R do not find them ugly in C.  I think the reason there
> would be a visceral reaction  in R but not in C is that
> there is a danger when using them in R that they really
> mean something.
> We get questions on R-help often enough about why
> code like:
> if(x > 0) y <- 4
> else y <- 4.5e23
> doesn't work.
> If people habitually used semi-colons, those sorts of
> questions would probably multiply.

I don't understand. It would seem to me that in

    if (x > 0) y <- 4;
    else y <- 4.5e23;

it's pretty obvious that the "if" statement is terminated by the
semicolon at the end of the first line and that therefore, the "else"
on the next line is erroneous because it is not associated with any

At least, the version above fails consistently, i.e. regardless of
context. On the other hand, I've studied the R Language Definition for
quite some time before fully understanding why

    if (x > 0) y <- 4
    else y <- 4.5e23

works inside of a function (or other enclosing block) while it does not
work interactively (or at the top level of a script).

Best regards, Jan
 +- Jan T. Kim -------------------------------------------------------+
 |             email: jtk at cmp.uea.ac.uk                               |
 |             WWW:   http://www.cmp.uea.ac.uk/people/jtk             |
 *-----=<  hierarchical systems are for files, not for humans  >=-----*

More information about the R-help mailing list