Phần mở rộng cú pháp của Sexplib giúp việc tuần tự hóa và deserialization các cấu trúc dữ liệu do người dùng tự định nghĩa dễ dàng trong OCaml. Nó thường được thực hiện bằng cách thêm một chú thích with sexp
đến cuối của một định nghĩa kiểu:Làm thế nào sexplib có thể được sử dụng với các loại functor như Map?
type a = A of int | B of float with sexp
này dường như không để khái quát trực tiếp với các loại functor có trụ sở, cũng không phải là rõ ràng như thế nào Sexplib loại tiêu chuẩn chuyển đổi có thể chụp thậm chí các functors tiêu chuẩn. Cho đến nay tôi đã làm việc này bằng cách làm phẳng một thể loại Map cụ thể (ví dụ: int Map.Make(String).t
) vào một danh sách trước khi tuần tự hóa, và ngược lại, nhưng chắc chắn điều này chưa bị bỏ qua hoàn toàn bởi các tác giả tham vọng chung của Sexplib/Jane. Lõi đường phố. Tôi cũng nhận thấy rằng phiên bản cũ hơn của Pin kết hợp theo chuỗi serialp tùy chỉnh cho các mô-đun chính của chúng như Bản đồ [Bat], nhưng điều này đã bị xóa một thời gian.
Bản đồ hoặc các loại functor phức tạp khác thường được sử dụng với serialization Sexplib như thế nào?
Tôi nghĩ bạn sẽ sử dụng thư viện chuẩn mở rộng với các chức năng chuyển đổi giới tính phổ biến cho điều đó. Bạn đã xem 'Core' chưa? Tôi chỉ dành 5 phút với nó nhưng trong 5 phút này, tôi đã áp dụng hàm functor 'Set.Make' và nó yêu cầu tôi cho các hàm chuyển đổi sexplib trên kiểu đối số để nó có thể xây dựng các hàm chuyển đổi sexplib cho kiểu tập kết quả. –