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

From: Jan T. Kim <jtk_at_cmp.uea.ac.uk>
Date: Thu 08 Dec 2005 - 05:48:03 EST

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 "if".

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@cmp.uea.ac.uk                               |
 |             WWW:   http://www.cmp.uea.ac.uk/people/jtk             |
 *-----=<  hierarchical systems are for files, not for humans  >=-----*

______________________________________________
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
Received on Thu Dec 08 05:58:31 2005

This archive was generated by hypermail 2.1.8 : Fri 03 Mar 2006 - 03:41:34 EST