From ggrothendieck at gmail.com  Sun Mar 30 19:30:23 2008
From: ggrothendieck at gmail.com (Gabor Grothendieck)
Date: Sun, 30 Mar 2008 13:30:23 -0400
Subject: [Rd] callCC in 2.7.0
In-Reply-To: <Pine.LNX.4.64.0803301202310.6663@itasca2.wildberry.org>
References: <971536df0803300710t40f61256x78b9889a5c323924@mail.gmail.com>
	<f8e6ff050803300904i1a950ed5r58738fb4184ccad0@mail.gmail.com>
	<971536df0803300934t4f354132od131d1f567652fd0@mail.gmail.com>
	<971536df0803300958t2cca7f07w59746a388c0b488f@mail.gmail.com>
	<Pine.LNX.4.64.0803301202310.6663@itasca2.wildberry.org>
Message-ID: <971536df0803301030t117f810an69b3f3dc299827e5@mail.gmail.com>

I came across this in googling for continuations and was surprised when
I found it in R 2.7.0 and since I had not come across it before  I assumed
it was added just now.

Can you explain how its intended to be used with an example
that is more realistic than in the example section.

On Sun, Mar 30, 2008 at 1:14 PM, Luke Tierney <luke at stat.uiowa.edu> wrote:
> On Sun, 30 Mar 2008, Gabor Grothendieck wrote:
>
> > Also in trying it out again it seems that its not like
> > on.exit but more like return:
>
> Yes -- if you can point out what in the documentation ever gave the
> idea it might be like on.exit then we can fix the documentation.
>
> >
> > F <- function(f) { f(10); print(2); f(20); 3}
> > callCC(F)
> >
> > acts the same as:
> >
> > F <- function() { return(10); print(2); f(20); 3}
> > F()
> >
> > and there is no documented way to restart F
> > at the point it left off so I assume it can't.
>
> The documentation descriped this as a downward-only version -- that is
> standard terminology for a callCC that produces continuations that are
> no longer valid after the callCC call exits.
>
> Not sure why your original question was about "callCC in 2.7.0" -- I
> believe callCC was added in 2.5.0, the same time as codetools became
> recommended, and hasn't changed since.  It is not a function every R
> user needs to have in their repertoire, but it can be very useful in
> some situations.
>
> luke
>
> > On Sun, Mar 30, 2008 at 12:34 PM, Gabor Grothendieck
> > <ggrothendieck at gmail.com> wrote:
> >> I think the only relationship to that is the name since
> >> it does not appear to allow one to leave a function
> >> in the middle of its processing and re-enter it back
> >> at that point -- which is what would be needed.
> >>
> >>
> >> On Sun, Mar 30, 2008 at 12:04 PM,  <h.wickham at gmail.com> wrote:
> >>>
> >>>> Would anyone like to explain if callCC in R 2.7.0 gives
> >>>> anything that on.exit does not already provide?
> >>>>
> >>>> It seems that the exit condition once defined cannot
> >>>> be added to overridden whereas with on.exit multiple
> >>>> on.exit's add additional on.exits rather than being ignored.
> >>>>
> >>>> Is this important?
> >>>
> >>> It facilitates a completely different style of programming - see
> >>> http://en.wikipedia.org/wiki/Continuation-passing_style
> >>>
> >>> --
> >>> http://had.co.nz/
> >>>
> >>
> >
> > ______________________________________________
> > 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
>



[Rd] callCC in 2.7.0
Gabor Grothendieck