Advertisement
Guest User

Untitled

a guest
Jan 23rd, 2017
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.58 KB | None | 0 0
  1. (* count *)
  2. (* val count: 'a -> 'a list -> int *)
  3. let rec count x xs =
  4. match xs with
  5. | a::xs when a == x -> 1 + count x xs
  6. | _::xs -> 0 + count x xs
  7. | [] -> 0
  8.  
  9. (* remove list duplicates *)
  10. (* val nub : 'a list -> 'a list *)
  11. let nub xs =
  12. let rec mem y ys =
  13. match ys with
  14. | a::bs when a == y -> true
  15. | a::bs -> mem y bs
  16. | _ -> false
  17. in
  18.  
  19. let rec rem_dup res xs =
  20. match xs with
  21. | a::bs when (mem a res) -> rem_dup res bs
  22. | a::bs -> rem_dup (res@[a]) bs
  23. | [] -> res
  24. in
  25.  
  26. rem_dup [] xs
  27.  
  28. let cheat_nub xs =
  29. List.sort_uniq compare xs
  30. Sign up for free
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement