function push(sequence stack, object what) stack = append(stack,what) return stack end function function pop(sequence stack) object what = stack[$] stack = stack[1..$-1] return {stack,what} end function function empty(sequence stack) return length(stack)=0 end function sequence stack = {} ?empty(stack) -- 1 stack = push(stack,5) ?empty(stack) -- 0 stack = push(stack,6) integer top {stack,top} = pop(stack) ?top -- 6 {stack,top} = pop(stack) ?top -- 5 ?empty(stack) -- 1