Advertisement
KirylFromBY

Lab10_1OCaml

Dec 18th, 2018
414
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
OCaml 1.03 KB | None | 0 0
  1. module type OBSLUGA_KOLEJKI =
  2. sig
  3.   type 'a tk
  4.   exception Pusta of string
  5.   val tworz_pusta: unit -> 'a tk
  6.   val do_kolejki: 'a * 'a tk -> 'a tk
  7.   val z_kolejki: 'a tk -> 'a tk
  8.   val pierwszy_element: 'a tk -> 'a
  9.   val kolejka_pusta: 'a tk -> bool
  10. end;;
  11.  
  12.  module Kolejka : OBSLUGA_KOLEJKI = struct  
  13.     type 'a tk = KolejkaPusta | Skladowa of 'a * 'a tk  
  14.     exception Pusta of string      
  15.     let tworz_pusta() = KolejkaPusta  
  16.     let do_kolejki(e,s) = Skladowa(e,s)  
  17.     let pierwszy_element = function Skladowa(e,_) -> e  | KolejkaPusta -> raise (Pusta "module Kolejka: top")
  18.     let z_kolejki = function Skladowa(_,s) -> s  | KolejkaPusta -> KolejkaPusta
  19.     let kolejka_pusta s = s = KolejkaPusta
  20.   end;;
  21.  
  22. let s = Kolejka.(do_kolejki(2,do_kolejki(1,tworz_pusta())));;
  23. Kolejka.pierwszy_element s;;
  24. let s = Kolejka.do_kolejki(55,s);;
  25. Kolejka.pierwszy_element s;;
  26. let s = Kolejka.z_kolejki s;;
  27. Kolejka.pierwszy_element s;;
  28. Kolejka.kolejka_pusta s;;
  29. let s = Kolejka.tworz_pusta();;
  30. Kolejka.kolejka_pusta s;;
  31. Kolejka.pierwszy_element s;;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement