Skip to content
Snippets Groups Projects
Select Git revision
  • 68e6f2672f4c006498a8a79e44c124db0b4504e4
  • master default protected
2 results

bucketSort.ml

Blame
  • bucketSort.ml 463 B
    module Make = functor (K : Map.OrderedType) -> 
    struct 
    
      module M = Map.Make(K) 
    
      let add_to_list key value map = 
        M.update key 
          (function 
          | None -> Some [value]
          | Some list -> Some (value::list)
          )
          map 
    
      let insert ~get_key map value = 
        add_to_list (get_key value) value map 
          
      let sort ~get_key values = 
        values
        |> List.fold_left (insert ~get_key) M.empty 
        |> M.bindings 
        |> List.map snd
    
    end