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.