Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
Abstract Stack data type
Documentation
Abstract Stack data type
stackPush :: Stack a -> a -> Stack a Source #
Push item onto Stack
(∀x)(∀s)(stackPop (stackPush s x) == Just (s,x))
stackPeek :: Stack a -> Maybe a Source #
Pop most recently added item without removing from the Stack
stackPeek stackNew == Nothing (∀x)(∀s)(stackPeek (stackPush s x) == Just x) (∀s)(stackPeek s == fmap snd (stackPop s))
stackPop :: Stack a -> Maybe (Stack a, a) Source #
Pop most recently added item from Stack
stackPop stackNew == Nothing (∀x)(∀s)(stackPop (stackPush s x) == Just (s,x))
stackIsEmpty :: Stack a -> Bool Source #
Test if stack is empty
stackIsEmpty stackNew == True (∀x)(∀s)(stackIsEmpty (stackPush s x) == True) (∀s)((stackSize s == 0) ⇔ (stackIsEmpty s == True))