Here is the test code. foo<-function(x) exp(-x) for (i in 1:5) { foo<-function(x) foo(x)*x foo(2) } The error is "evalution nested too deeply". I tried Recall() but it didn't work either. Thanks a lot for your input.
What exactly are you trying to do? 'foo' calls 'foo' calls 'foo' .... How did you expect it to stop the recursive calls? On Thu, Mar 4, 2010 at 2:08 PM, Seeker <zhongming at gmail.com> wrote:> Here is the test code. > > foo<-function(x) exp(-x) > for (i in 1:5) > { > foo<-function(x) foo(x)*x > foo(2) > } > > The error is "evalution nested too deeply". I tried Recall() but it > didn't work either. Thanks a lot for your input. > > ______________________________________________ > R-help at r-project.org mailing list > 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. >-- Jim Holtman Cincinnati, OH +1 513 646 9390 What is the problem that you are trying to solve?
On 04.03.2010 20:08, Seeker wrote:> Here is the test code. > > foo<-function(x) exp(-x) > for (i in 1:5) > { > foo<-function(x) foo(x)*x > foo(2)Hmmm, wenn do you think does the evaluation stop? Your recursion has an infinity depth. If you cannot get the recursion right (and even if you can): Try to get around without recursion, it is in most cases a bad idea in R: You are wasting memory and it is rather slow compared to iterative approaches. Uwe Ligges> } > > The error is "evalution nested too deeply". I tried Recall() but it > didn't work either. Thanks a lot for your input. > > ______________________________________________ > R-help at r-project.org mailing list > 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.
My foolish move for this week: I'm going to go way out on a limb and guess what the OP wanted was something like this. i=1, foo = x*exp(-x) i=2, foo= x^2*exp(-x) i=3, foo = x^3*exp(-x) . . . In which case he really should create a vector bar<-rep(na,5) , and then inside the loop, bar[i]<-x^i*foo(x) Carl quoted material: Date: Thu, 04 Mar 2010 11:37:23 -0800 (PST) I need to update posterior dist function upon the coming results and find the posterior mean each time. On Mar 4, 1:31 pm, jim holtman <jholt..._at_gmail.com> wrote: > What exactly are you trying to do? 'foo' calls 'foo' calls 'foo' .... > How did you expect it to stop the recursive calls? > > > > > > On Thu, Mar 4, 2010 at 2:08 PM, Seeker <zhongm..._at_gmail.com> wrote: > > Here is the test code. > > > foo<-function(x) exp(-x) > > for (i in 1:5) > > { > > foo<-function(x) foo(x)*x > > foo(2) > > }