It seems like it wouldn't be difficult, and that someone may have already implemented a set of stack functions, and I wouldn't like to duplicate it.
Here's a Tuesday evening lash-up. Usage is:
> mystack <- stack() # initialisation > push(mystack,value) # stores something on the stack > pop(mystack) # returns 'value'
There's a print method that lists the stack. Its simply a list. Stack underflow is reported as 'attempt to select less than one element'. You can push anything on the stack. Almost. I just tried pushing a stack object onto the stack, and got infinite recursion, cant think why. Anyway, this seems to work for most sensible situations!
stack <- function(){
it <- list()
res <- list(
push=function(x){
it[[length(it)+1]] <<- x
},
pop=function(){
val <- it[[length(it)]]
it <<- it[-length(it)]
return(val)
},
value=function(){
return(it)
}
)
class(res) <- "stack"
res}
print.stack <- function(x,...){
print(x$value())
}push <- function(stack,obj){
stack$push(obj)
}pop <- function(stack){
stack$pop()
}Baz
______________________________________________ [EMAIL PROTECTED] mailing list http://www.stat.math.ethz.ch/mailman/listinfo/r-help
