Ho bisogno di una mappa OCaml con le chiavi del tipo int così sto usando Map.Make per crearne uno. Tuttavia, sembra che l'standard modules 'unica' forniscono moduli come Big_int, Int32, Int64 e nativeint che richiedono conversioni. Quindi devo fare le cose come:Mappa OCaml di chiavi int: dove è il modulo int '' semplice 'da utilizzare con il functor Map.Make?
module IntMap = Map.Make(Int32)
let a_map = IntMap.add (Int32.of_int 0) "zero" IntMap.empty ;;
... che avrei preferito evitare o definire la mia sciocca modulo Int non trattare con semplici int letterali o valori senza la necessità di funzioni di conversione:
module Int = struct
type t = int
let compare x y = if x < y then -1 else if x > y then 1 else 0 end ;;
module IntMap = Map.Make(Int)
let a_map = IntMap.add 0 "zero" IntMap.empty ;;
Mi manca qualcosa di ovvio qui?
Basta usare 'Pervasives.compare'. – Ptival