Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- q1
- fun unique [] = []
- | unique (x::xs) = x:: unique (List.filter (fn y => y<>x) xs);
- q3
- local
- fun merge _ [] [] = []
- | merge _ list [] = list
- | merge _ [] list = list
- | merge pred (x::xs) (y::ys) = if pred(x,y) then (y::(merge pred (x::xs) ys))
- else (x::(merge pred xs (y::ys)))
- in
- fun mergesort _ [] = []
- | mergesort _ [x] = [x]
- | mergesort pred l = merge pred
- (mergesort pred (List.take (l,((length l) div 2))))
- (mergesort pred (List.drop (l,((length l) div 2))))
- end;
- local
- fun merge _ [] [] = []
- | merge _ list [] = list
- | merge _ [] list = list
- | merge pred (x::xs) (y::ys) = if pred(x,y) then (y::(merge pred (x::xs) ys))
- else (x::(merge pred xs (y::ys)))
- in
- fun mergesort _ [] = []
- | mergesort _ [x] = [x]
- | mergesort pred l = merge pred
- (mergesort pred (List.take (l,((length l) div 2))))
- (mergesort pred (List.drop (l,((length l) div 2))))
- end;
- q4
- fun sublistsSort l = mergesort (fn(x,y) => length x > length y) l
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement