2010-06-13 37 views
5

Tôi làm cách nào để sử dụng một số bản ghi OCaml mà tôi đã xác định trong một số tệp khác? Nói ví dụ mà tôi có a.ml tập tin trong đó tôi xác định bản ghi r:truy cập vào hồ sơ OCaml

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

và một tập tin b.ml trong đó tôi muốn sử dụng các bản ghi r. Một cái gì đó như thế này:

let s = {i = 12; j = 15;} rõ ràng không hoạt động - Tôi biết nó có liên quan đến việc truy cập vào mô-đun trong đó bản ghi được xác định, nhưng tôi chưa nhận được cú pháp đúng.

Trả lời

8

Các loại và các giá trị quy định tại a.ml sống trong các mô-đun A. Vì vậy, bạn cần phải hoặc là open A (do đó mang lại tất cả các định nghĩa từ A vào phạm vi) hoặc tham khảo ij như A.iA.j tương ứng.

+0

Ah, hmm, ok ... với tôi nó không hoạt động theo cách này bởi vì tôi đã làm một cái gì đó như: a.ml sẽ giữ định nghĩa bản ghi, a.mli sẽ không giữ bất cứ điều gì liên quan đến hồ sơ đó và tôi đang cố truy cập hồ sơ từ b.ml. Làm thế nào sẽ đi với một trường hợp như vậy - xác định các bản ghi trong giao diện? Dù bằng cách nào, cảm ơn cho câu trả lời. – hyperboreean

+2

Có, nhập định nghĩa được sử dụng từ các tệp khác là một phần của giao diện, vì vậy chúng cần phải nằm trong tệp mli nếu có. – sepp2k

Các vấn đề liên quan