on push(StackRef, value) set StackRef's contents to {value} & StackRef's contents return StackRef end push on pop(StackRef) set R to missing value if StackRef's contents ≠ {} then set R to StackRef's contents's item 1 set StackRef's contents to {} & rest of StackRef's contents end if return R end pop on isStackEmpty(StackRef) if StackRef's contents = {} then return true return false end isStackEmpty set theStack to {} repeat with i from 1 to 5 push(a reference to theStack, i) log result end repeat repeat until isStackEmpty(theStack) = true pop(a reference to theStack) log result end repeat