Advertisement
Guest User

Untitled

a guest
Jun 17th, 2019
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
OCaml 0.55 KB | None | 0 0
  1. module type STACK =
  2. sig
  3.     type element
  4.     type stack
  5.     val empty : stack
  6.     val push : element -> stack -> stack
  7.     val pop : stack -> element*stack
  8.     val to_list : stack -> element list
  9. end
  10.  
  11. module type IMP =
  12. sig
  13.     type t
  14. end
  15.  
  16. module ListStack(M : IMP) : STACK with type element = M.t =
  17. struct
  18.     type element = M.t
  19.     type stack = element list
  20.     let empty = []
  21.     let push x s = x :: s
  22.     let pop (x :: xs) = (x, xs)
  23.     let to_list s = s
  24. end
  25. module S = ListStack(
  26.         struct
  27.         type t = int
  28.         end
  29.     )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement