Guest User

Untitled

a guest
Jul 21st, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.44 KB | None | 0 0
  1. let rec make_index lst =
  2. match lst with
  3. [] -> []
  4. | [(n, kw)] -> List.map (fun s -> (s, [n])) kw
  5. | (n, kw) :: tl ->
  6. let map = List.map (fun (s,n_) ->
  7. if List.exists (fun kw_->kw_=s) kw then
  8. (s,n::n_)
  9. else
  10. (s,n_)) (make_index tl)
  11. in
  12. (List.filter (fun (kw_,_) ->
  13. not (List.exists (fun (s,_) -> s= kw_) map))
  14. (make_index [n,kw])) @ map
  15. ;;
  16.  
  17. make_index [1,["a";"b"];2,["c";"a"]];;
Add Comment
Please, Sign In to add comment