Re: [Rd] :Re: PROTECT and OCaml GC.

From: Laurent Gautier <lgautier_at_gmail.com>
Date: Mon, 30 Nov 2009 20:03:15 +0100

Guillaume Yziquel wrote:
> Laurent Gautier a écrit :

>>
>> Anonymous R objects, that is without an associated symbol in R, can be 
>> passed to functions (and in that way makes a binding "take hold of R 
>> objects without using symbols").
>> For example, building R code made of anonymous objects can be achieved 
>> by making a LANGSXP object and tweaking it.
>>
>> Example in R itself:
>>  > x <- call("round", 2.3)
>>  > eval(x)
>> [1] 2
>>  > x[[1]] <- function(x) x^2
>>  > eval(x)
>> [1] 5.29
>>
>> Getting more complex constructs may need a little more trickery.
>>
>> ...or do you mean something else ?
>>
>> L.

>
> You're saying "anonymous R objects can be passed to functions". My
> question is:
>
> can you construct a LANGSXP in C/Python/rpy from R objects and an
> anonymous R closure, the closure being available from C as a SEXP
> closure. Can you write a function
>
> SEXP my_langsxp (SEXP closure, SEXP arglist);
>
> with only the API?
>

If this can be done from R itself, it can be done from the C level.

I have not looked into making sure that this can precisely and effortlessly be done with rpy2, as ironing other parts of the bridge caught my attention and seemed more urgently needed, but I remember contemplating the idea of having it working at some point... (I went as far as getting LANGSXP objects exposed as Python list-like objects, I think).



R-devel_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel Received on Mon 30 Nov 2009 - 19:06:04 GMT

This archive was generated by hypermail 2.2.0 : Mon 30 Nov 2009 - 21:10:53 GMT