Advertisement
Guest User

Untitled

a guest
Oct 3rd, 2014
191
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
F# 0.91 KB | None | 0 0
  1. //Exam '13 assign
  2.  
  3. type Multiset<'a when 'a : equality> = ('a * int) list;;
  4. //hvad fck er 'a og equality???
  5.  
  6. let abe = [("a",4);("b",5);("c",3);("o",9)]//Hvorfor kan det ikke overloades til Multiset??
  7.  
  8. let rec inv = function
  9.     |[] -> true
  10.     |m::ms' -> not(List.exists (fun x -> x=m) ms') && inv ms'
  11.  
  12. //insert: 'a -> int -> Multiset<'a> -> Multiset<'a>
  13.  
  14. let insert e n ms = function
  15.     |((e,n),ms)
  16.             when List.exists (fun x -> x<>(e,n)) ms -> [(e,n)]@ms
  17.     |((e,n),ms)                                     -> List.foldBack
  18.                                                           (fun (a,b) list ->if (a,b)<>(e,n)
  19.                                                                             then (a,b)::list
  20.                                                                             else (a,b+n)::list) ms []
  21. //testcases, virker ikke?
  22. let abe2 = insert "p" 5 abe
  23. let abe3 = insert "p" 4 abe2
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement