Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Exam '13 assign
- type Multiset<'a when 'a : equality> = ('a * int) list;;
- //hvad fck er 'a og equality???
- let abe = [("a",4);("b",5);("c",3);("o",9)]//Hvorfor kan det ikke overloades til Multiset??
- let rec inv = function
- |[] -> true
- |m::ms' -> not(List.exists (fun x -> x=m) ms') && inv ms'
- //insert: 'a -> int -> Multiset<'a> -> Multiset<'a>
- let insert e n ms = function
- |((e,n),ms)
- when List.exists (fun x -> x<>(e,n)) ms -> [(e,n)]@ms
- |((e,n),ms) -> List.foldBack
- (fun (a,b) list ->if (a,b)<>(e,n)
- then (a,b)::list
- else (a,b+n)::list) ms []
- //testcases, virker ikke?
- let abe2 = insert "p" 5 abe
- let abe3 = insert "p" 4 abe2
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement