Skip to content
Back to formatted view

Raw Message

Message-ID: <CAJDot1o7eiHpT9DSRVqkMc69v3Bj2f4zcy+hE_rZfEDvN156dQ@mail.gmail.com>
Date: 2015-03-16T22:08:35Z
From: Saptarshi Guha
Subject: Returning to parent function

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.

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 looked into callCC and signals but dont think i understood correctly.
Any hints would be appreciated

Kind Regards
Saptarshi