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