home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Tools / Languages / Caml Light 0.61 / Source / src / lib / stack.ml < prev    next >
Encoding:
Text File  |  1993-09-24  |  309 b   |  21 lines  |  [TEXT/MPS ]

  1. #open "list";;
  2. #open "exc";;
  3.  
  4. type 'a t = { mutable c : 'a list };;
  5.  
  6. let new () = { c = [] };;
  7.  
  8. let push x s = s.c <- x :: s.c;;
  9.  
  10. let pop s =
  11.   match s.c with
  12.     hd::tl -> s.c <- tl; hd
  13.   | []     -> raise Empty
  14. ;;
  15.  
  16. let clear s = s.c <- [];;
  17.  
  18. let length s = list_length s.c;;
  19.  
  20. let iter f s = do_list f s.c;;
  21.