Re: [Rd] Syntactically valid names

From: peter dalgaard <pdalgd_at_gmail.com>
Date: Wed, 06 Jul 2011 10:10:04 +0200

On Jul 6, 2011, at 03:25 , Hadley Wickham wrote:

>> What's wrong with that? They are names alright, just with special meanings.

>
> But you can't really use them for variables:
>
>> ... <- 4
>> ...

> Error: '...' used in an incorrect context
>> ..1 <- 4
>> ..1

> Error: 'nthcdr' needs a list to CDR down
>
> And make.names generally protects you against that:
>
>> make.names("function")

> [1] "function."
>> make.names("break")

> [1] "break."

>> make.names("TRUE")
> [1] "TRUE."
That's two different issues:

> y <- list()
> y$... <- 2
> y$..2 <- 3
> y$break <- 4

Error: unexpected 'break' in "y$break"

Notice that there is nothing _syntactically_ wrong with ... & friends as names:

> quote(...<-4)

... <- 4

It's the _evaluator_ that throws the error because the ...-name has a special interpretation.

>

>>>> x <- paste(rep("x", 1e6), collapse = "")
>>>> x == make.names(x)
>>> [1] TRUE
>> 
>> Mildly insane, but technically OK, no?

>
> I don't think so:
>
>> x <- paste(rep("x", 1e6), collapse = "")
>> assign(x, 1)

> Error in assign(x, 1) : variable names are limited to 10000 bytes

But that's a sanity check, with an arbitrary cutoff. A string of a million "x"s is syntactically a valid name, it's just the evaluator that refuses to play with it. (Not to say that it would be wrong to put in a similar sanity check in make.names.)

-- 
Peter Dalgaard
Center for Statistics, Copenhagen Business School
Solbjerg Plads 3, 2000 Frederiksberg, Denmark
Phone: (+45)38153501
Email: pd.mes_at_cbs.dk  Priv: PDalgd_at_gmail.com

______________________________________________
R-devel_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
Received on Wed 06 Jul 2011 - 08:13:36 GMT

This quarter's messages: by month, or sorted: [ by date ] [ by thread ] [ by subject ] [ by author ]

All messages

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Wed 06 Jul 2011 - 13:40:06 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-devel. Please read the posting guide before posting to the list.

list of date sections of archive