# Josua Kugler, Christian Merten make_store <- function(n) { dl <- vector(mode="list", length=n) i <- 1 function(item=NULL, reset=FALSE) { if (reset) { dl <<- vector(mode="list", length=n); i <<- 1 } if (is.null(item)) return(dl) dl[[i]] <<- item i <<- i+1 if (i > n) i <<- 1 invisible(dl) } } store3 <- make_store(3) store2 <- make_store(2) store3(1) store3("asdf") str(store3()) store3(list()) store3(TRUE) store3(1:10) str(store3()) store3(NA, reset=TRUE) str(store3()) store3(1:10) str(store3()) store2(1) store2(2) store2(3) str(store2()) str(store3())