Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- functor Double_Stack_Queue_Fn (myStack : Stack) :> Queue =
- struct
- type 'a queue = ('a myStack.stack, 'a myStack.stack)
- exception Empty
- val empty = (myStack.empty, myStack.empty)
- fun enqueue (f, s) e = (myStack.push f e, s)
- fun dequeue (f, s) = case s of
- [] => if f = myStack.empty then raise Empty else dequeue (myStack.empty, rev f)
- | x::xs => (x, (f, xs))
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement