2010-06-13 24 views
5

Comment puis-je utiliser un enregistrement OCaml que j'ai défini dans un autre fichier? Disons, par exemple, que je le fichier a.ml dans lequel je définis le dossier r:accéder aux enregistrements OCaml

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

et un b.ml de fichier dans lequel je veux utiliser le dossier r. Quelque chose comme ceci:

let s = {i = 12; j = 15;} ne fonctionne pas clairement - Je sais que cela a quelque chose à voir avec l'accès au module dans lequel l'enregistrement est défini, mais je n'ai pas encore trouvé la bonne syntaxe.

Répondre

8

Les types et les valeurs définies dans a.ml vivent dans le module A. Donc, vous devez soit open A (ce qui porte toutes les définitions de A dans le périmètre) ou consultez i et j comme A.i et A.j respectivement.

+0

Ah, hmm, ok ... pour moi ça ne fonctionnait pas de cette façon parce que je faisais quelque chose comme: a.ml tiendrait la définition de l'enregistrement, a.mli ne détiendrait rien lié à cet enregistrement et je essayait d'accéder au dossier de b.ml. Comment irait-on avec un tel cas - définir l'enregistrement dans l'interface? De toute façon, merci pour la réponse. – hyperboreean

+2

Oui, les définitions de type destinées à être utilisées à partir d'autres fichiers font partie de l'interface, elles doivent donc se trouver dans le fichier mli s'il y en a un. – sepp2k