Advertisement
Guest User

parse csv in stringmap

a guest
May 14th, 2015
270
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
OCaml 0.66 KB | None | 0 0
  1. module StringMap = Map.Make(String);;
  2. type xyz = {x:int;y:int;z:int;prefs:int StringMap.t};;
  3. let prefs_str = "1134,792,1390,296,597,641,394,1480,23,551"
  4.  
  5. let parse_prefs sep str =
  6.   let string_index_from i =
  7.     try Some (String.index_from str i sep)
  8.     with Not_found -> None in
  9.     let rec aux i n x =
  10.     match string_index_from i with
  11.     |Some m->let m=StringMap.add (String.sub str i (m-i)) n x in aux (succ m) (succ n) m
  12.     |None  ->let m = StringMap.add (String.sub str i (String.length str-i)) n x
  13.     in aux 0 1 StringMap.empty
  14.  
  15. let () = let tmp = parse_prefs ',' prefs_str in  
  16.     StringMap.iter (fun k v -> Printf.printf "%s -> %d\n" k v) tmp
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement