Re: [Rd] Problem with {

From: Peter Dalgaard <P.Dalgaard_at_biostat.ku.dk>
Date: Mon, 09 Jul 2007 15:44:58 +0200

Gabor Grothendieck wrote:
> Why does the error get generated here? Is it a bug? It seems that
> f and "{" are the same but when used in sapply f works but { does not.
> Is its use in lapply really "an incorrect context"?
>
>
>> f <- function(x, y) y
>> f(1, 2)
>>
> [1] 2
>
>> "{"(1, 2)
>>
> [1] 2
>
>> lapply("y", function(x, y) y, 1:4) # ok
>>
> [[1]]
> [1] 1 2 3 4
>
>> lapply("y", "{", 1:4) # error
>>
> Error in lapply("y", "{", 1:4) : '...' used in an incorrect context
>
lapply() is not really part of the problem:

> (function(x,...) "{"(x,...))(1,2)
Error in (function(x, ...) { : '...' used in an incorrect context

Not sure exactly why this is so, but "{" has somewhat nonstandard evaluation semantics and you cannot do
"{x, ...}" either, nor for that matter x <- function(...)...; x(2),
which gives off a similar error.

>> R.version.string # XP
>>
> [1] "R version 2.5.1 (2007-06-27)"
>
> See:
>
> https://www.stat.math.ethz.ch/pipermail/r-help/2007-July/135999.html
>
> for a variation of the lapply using sapply (which also has the same
> problem if one uses { instead of f).
>
> ______________________________________________
> R-devel_at_r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>

-- 
   O__  ---- Peter Dalgaard             Ă˜ster Farimagsgade 5, Entr.B
  c/ /'_ --- Dept. of Biostatistics     PO Box 2099, 1014 Cph. K
 (*) \(*) -- University of Copenhagen   Denmark          Ph:  (+45) 35327918
~~~~~~~~~~ - (p.dalgaard_at_biostat.ku.dk)                  FAX: (+45) 35327907

______________________________________________
R-devel_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
Received on Mon 09 Jul 2007 - 14:07:14 GMT

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 Tue 10 Jul 2007 - 03:35:46 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.