Example was complicated, but here is a simpler form continueIfTrue <- function(mm=return()){ eval(mm) } telemStats <- function(){ y <- substitute(return()) continueIfTrue(y) print("I would not like this message to be printed") } telemStats()
Ideally, calling telemStats() should return to the prompt and the print in telemStats should not appear On Mon, Mar 16, 2015 at 4:02 PM, David Winsemius <dwinsem...@comcast.net> wrote: > > On Mar 16, 2015, at 3:08 PM, Saptarshi Guha wrote: > >> Hello, >> >> I would like a function X to return to the place that called the >> function XParent that called this function X. >> >> Y calls XParent >> Y = function(){ >> XParent() >> print("hello") >> } >> >> XParent calls X >> >> XParent = function(){ >> X() >> print("H") >> } >> >> X returns to the point just after the call to XParent. Hence >> print("H") is not called, but instead "hello" is printed. > > ?sys.call # my second reading of your question makes me think this wasn't > what was requested. > > ?return # this would do what was asked for > >> XParent = function(){ > + return(sys.call()) > + print("H") > + } >> Y() > [1] "hello" > > # Success > # now to show that a value could be returned if desired > >> Y = function(){ > + print(XParent()) > + print("hello") > + } >> XParent = function(){ > + return(sys.call()) > + print("H") > + } >> Y() > XParent() > [1] "hello" > > >> >> X returns to the point just after the call to XParent. Hence >> print("H") is not called, but instead "hello" is printed. >> >> An example of what i'm going for is this >> >> continueIfTrue <- function(filterExp, grpname, subname,n=1){ >> y <- substitute(filterExp) >> res <- isn(eval(y, envir=parent.frame()),FALSE) >> ## if res is FALSE, I would like to return from telemStats >> } >> >> telemStats <- function(a,b){ >> b <- c(10,12) >> continueIfTrue( { length(b) >=10 }, "progStats","00") >> print("Since the above condition failed, I would not like this >> message to be printed") >> } > > I'm afraid there were too many undefined objects to make much sense of that > example. > >> >> I looked into callCC and signals but dont think i understood correctly. >> Any hints would be appreciated >> >> Kind Regards >> Saptarshi >> > -- > > David Winsemius > Alameda, CA, USA > ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.