Trước khi làm phiền mọi người trong danh sách gửi thư của OCaml, tôi nghĩ tôi có thể đăng câu hỏi của mình ở đây. Tôi vừa phát hiện ra điều này beauty (liên kết đến trang web Concoqtion). Concoqtion là một phần mở rộng của MetaOCaml cho phép các loại được lập chỉ mục (và có lẽ nhiều hơn nữa). Với nó, thật dễ dàng để tạo danh sách loại cũng bao gồm độ dài của danh sách:Concoqtion (Coq + MetaOCaml) - tại sao bị bỏ rơi?
type ('n:'(nat),'a) listl =
| Nil : ('(0),'a) listl
| Cons of let 'm:'(nat) in 'a * ('(m),'a) listl : ('(m+1),'a) listl
Điều đó (m+1)
được thực hiện ở cấp độ loại. Rât gọn gang.
Tuy nhiên, phiên bản cuối cùng là từ năm 2007 (OCaml 3.08). Có bất cứ ai có ý tưởng tại sao dự án này đã bị hủy bỏ, hoặc nếu có một cái gì đó tương tự cho OCaml ngày hôm nay?
Vì MetaOCaml không được chuyển sang phiên bản OCaml sau cho đến BER MetaOCaml dựa trên OCaml 4.00.1. Tôi quên các chi tiết nhưng MetaOCaml yêu cầu một số thay đổi nội bộ của OCaml để bảo trì dễ dàng hơn. – camlspotter