Re: [Rd] Inspecting promises

From: Luke Tierney <luke_at_stat.uiowa.edu>
Date: Mon, 24 Sep 2007 08:00:02 -0500 (CDT)

Please keep in mind that while lazy evaluation and delayedAssign are documented parts of the language, promises are an internal implementation mechanism that is subject to change. In particular the fact that substitute behaves the way it does is a coincidence of the current implementation that may very well change. Currently, for example, the use of promises to make substitute work means promises need to be kept around once thei are forced. This is inefficient in several ways and may need to be fixed at some point.

It may well be useful to provide some reflection mechanisms for examining environments, but there are more issues to consider than pending evaluations (active bindings for example). I'm not sure when this will rise to the top of anyone's priority list for implementation.

luke

On Sun, 23 Sep 2007, Gabor Grothendieck wrote:

> Is there some way of displaying the expression and evaluation environment
> associated with a promise? I have found the following:
>
>> # first run these two commands to set up example
>> e <- new.env()
>> delayedAssign("y", x*x, assign.env = e)
>
>> # method 1. shows expression but not evaluation environment
>> str(as.list(e))
> List of 1
> $ y: promise to language x * x
>
>> # method 2. shows expression but not evaluation environment
>> substitute(y, e)
> x * x
>
> which shows two different ways of displaying the expression
> associated with a promise but neither shows the evaluation
> environment. The first technique may actually be a bug in
> R based on previous discussion on r-devel.
>
> Is there a way to display both the expression and the evaluation
> environment associated with a promise. Its a bit difficult to debug
> code involving promises if you can't inspect the objects you are
> working with.
>
>> R.version.string # Vista
> [1] "R version 2.6.0 beta (2007-09-19 r42914)"
>
> ______________________________________________
> R-devel_at_r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>

-- 
Luke Tierney
Chair, Statistics and Actuarial Science
Ralph E. Wareham Professor of Mathematical Sciences
University of Iowa                  Phone:             319-335-3386
Department of Statistics and        Fax:               319-335-3017
    Actuarial Science
241 Schaeffer Hall                  email:      luke_at_stat.uiowa.edu
Iowa City, IA 52242                 WWW:  http://www.stat.uiowa.edu

______________________________________________
R-devel_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
Received on Mon 24 Sep 2007 - 13:31:44 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 25 Sep 2007 - 08:41:48 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.