Estoy escribiendo una función OCaml donde necesito unir dos mapas. No he podido descifrar la semántica de la función merge
proporcionada por el functor Map.Make
(que se encuentra en la versión 3.12.0 de OCaml). ¿Podría alguien proporcionarme una explicación más detallada que el manual OCaml? Un ejemplo probablemente sería suficiente para que yo lo resolviera.Semántica OCaml de fusión en functor Map.make?
Además, los dos mapas que necesito fusionar tienen algunas propiedades interesantes: las claves tienen el mismo tipo (int
, en realidad), y su dominio es disjunto. ¿Habría un enfoque más eficiente que la rutina de fusión?
Cuando el tipo de teclas es 'int' y le interesa fusionar (disjuntos o no) mapas, vale la pena comprobar si los mapas representados como árboles de Patricia son apropiados para su necesidad. Aquí hay una implementación: http://www.lri.fr/~filliatr/ftp/ocaml/ds/ptmap.ml.html –
Por cierto, si una de las respuestas resuelve su problema, debe marcarlo como aceptado. –