1. The point is that you can use <<- and still not pollute the
global environment with any variables so its not clear
why there should be any requirement not to use it.

Other possiblities are

2. to pass the info around through the return value or through an environment:

fact <- function(n) {
        if (n == 1) list(n, c("1" = 1))
        else {
                f <- fact(n-1)
                out <- list(n * f[[1]], unlist(f))
                names(out[[2]])[1] <- n
                out
        }
}
                
fact(4)

3. or through an environment:

fact <- function(n, e) {
        if (n == 1) e[["1"]] <- 1
        else n * (e[[format(n)]] <- fact(n-1, e))
}

e <- new.env()
fact(4, e)
as.list(e)


On 9/22/06, X.H Chen <[EMAIL PROTECTED]> wrote:
> Hi Gabor,
>
> Thanks for pointing out this for me. However, what I try to get is how to
> construct such form a function f that
>
> ret<-f(...),
>
> where ret contains the each recursive result from f, and meantime f consists
> of no <<- operator. Do you have any idea how to implemet this. Thanks a lot
> for your suggestions.
>
> Cheer
>
> Xiaohui Chen
>
> Dept. of Statistics
> UBC, Canada
>
>
>
>
> >From: "Gabor Grothendieck" <[EMAIL PROTECTED]>
> >To: "X.H Chen" <[EMAIL PROTECTED]>
> >CC: r-help@stat.math.ethz.ch
> >Subject: Re: [R] how to store recursive results
> >Date: Fri, 22 Sep 2006 06:49:22 -0400
> >
> >Note that <<- is not necessarily global:
> >
> >if (exists("x")) rm(x)
> >f <- function() {
> >       x <- 2
> >       g <- function() x <<- 3
> >       g()
> >       x
> >}
> >f() # 3
> >exists("x") # FALSE
> >
> >On 9/22/06, X.H Chen <[EMAIL PROTECTED]> wrote:
> >>Hi all,
> >>
> >>How to store recursive resutls from a function for each step without using
> >>global operators <<-? Thanks ahead.
> >>
> >>Xiaohui Chen
> >>
> >>Dept. of Statistics
> >>UBC, Canada
> >>
> >>_________________________________________________________________
> >>Don't waste time standing in line—try shopping online. Visit Sympatico /
> >>MSN
> >>
> >>
> >>
> >>______________________________________________
> >>R-help@stat.math.ethz.ch 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.
> >>
> >>
> >>
>
> _________________________________________________________________
> Buy what you want when you want it on Sympatico / MSN Shopping
> http://shopping.sympatico.msn.ca/content/shp/?ctId=2,ptnrid=176,ptnrdata=081805
>
>

______________________________________________
R-help@stat.math.ethz.ch 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.

Reply via email to