2010-06-13 15 views
5

¿Cómo puedo usar algún registro OCaml que he definido en algún otro archivo? Digamos por ejemplo que tengo el a.ml archivo en el que defino el registro r:accediendo a los registros OCaml

type r = { i: int; j: int; };

y una b.ml archivo en el que quiero usar el registro r. Algo como esto:

let s = {i = 12; j = 15;} claramente no funciona - Sé que tiene algo que ver con acceder al módulo en el que se define el registro, pero todavía tengo que obtener la sintaxis correcta.

Respuesta

8

Los tipos y valores definidos en a.ml viven en el módulo A. Por lo que necesita ya sea open A (con lo que de esta manera todas las definiciones de A en alcance) o consulte ij y como A.i y A.j respectivamente.

+0

Ah, hmm, ok ... para mí no funcionaba de esta manera porque estaba haciendo algo como: a.ml contendría la definición de registro, a.mli no tendría nada relacionado con ese registro y yo estaba tratando de acceder al registro desde b.ml. ¿Cómo sería posible con este caso? ¿Definir el registro en la interfaz? De cualquier manera, gracias por la respuesta. – hyperboreean

+2

Sí, las definiciones de tipo que se deben usar desde otros archivos son parte de la interfaz, por lo que deben estar en el archivo mli, si es que hay alguno. – sepp2k