Advertisement
niktkolwiek

lista 10 zad 1

Dec 13th, 2011
3,067
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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.  
  13. module Queue : OBSLUGA_KOLEJKI =
  14. struct
  15.   type 'a tk = KolejkaPusta | Skladowa of 'a * 'a tk;;
  16.   exception Pusta of string
  17.   let tworz_pusta() = KolejkaPusta
  18.   let do_kolejki (e,q) = Skladowa(e, q)
  19.   let rec z_kolejki = function
  20.     | KolejkaPusta -> raise(Pusta "kolejka jest pusta")
  21.     | Skladowa(e,KolejkaPusta) -> KolejkaPusta
  22.     | Skladowa(e,q) -> Skladowa(e, z_kolejki q)
  23.   let rec pierwszy_element = function
  24.     | KolejkaPusta -> raise(Pusta "kolejka jest pusta")
  25.     | Skladowa(e,KolejkaPusta) -> e
  26.     | Skladowa(e,q) -> pierwszy_element q
  27.   let kolejka_pusta q = KolejkaPusta = q
  28. end;;
  29.  
  30. let q = Queue.do_kolejki(2,Queue.do_kolejki(1,Queue.tworz_pusta()));;
  31. Queue.pierwszy_element q;;
  32. Queue.pierwszy_element(Queue.z_kolejki q);;
  33.  
  34.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement