procedure main(arglist) queue := [] write("Usage:\nqueue x x x - x - - - - -\n\t- pops elements\n\teverything else pushes") write("Queue is:") every x := !arglist do { case x of { "-" : pop(queue) | write("pop(empty) failed.") # pop if the next arglist[i] is a - default : put(queue,x) # push arglist[i] } if empty(queue) then writes("empty") else every writes(!queue," ") write() } end procedure empty(X) #: fail if X is not empty if *X = 0 then return end