Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer

Re: using foreach

by thezip (Vicar)
on Jul 25, 2008 at 23:57 UTC ( #700256=note: print w/replies, xml ) Need Help??

in reply to using foreach

Indeed, it is not a good idea to manipulate a stack unless you follow the specific interface that applies to a stack:

  1. A stack is like a stack of dishes in that you may only place items onto the top of the stack, and you may only pop items from the top of the stack.

  2. You must always check to see if the stack isEmpty() before attempting to pop.

  3. If desired, you may implement a sizeOf feature, and its purpose is to return the current number of items in the stack. (This count can be used to implement the isEmpty() function.)

In your code, I do not see any place where you check for the empty stack, so in another context (where it's not obvious that there are items on the stack), it would be a potential error to attempt to pop from a potentially empty stack.

While it is true that a "while loop" is would act in this capacity, you have used a "for loop", and should therefore check for empty prior to a pop.

Your wish is my commandline.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://700256]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others having an uproarious good time at the Monastery: (4)
As of 2018-05-23 03:49 GMT
Find Nodes?
    Voting Booth?