Advertisement
Guest User

Untitled

a guest
May 28th, 2016
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.30 KB | None | 0 0
  1. data Queue a = Queue [a] [a] -- front & back lists
  2.  
  3. insert :: a -> Queue a -> Queue a
  4. insert x (Queue f b) = Queue f (x:b)
  5.  
  6. pop :: Queue a -> (Maybe a, Queue a)
  7. pop (Queue [] []) = (Nothing, Queue [] [])
  8. pop (Queue (x:xs) b) = (Just x, Queue xs b)
  9. pop (Queue [] b) = pop $ Queue (reverse b) []
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement