Việc triển khai các lớp loại của Haskell là gì và lợi thế (dis) của chúng là gì?


9

Theo như tôi biết, một hàm Haskell với các ràng buộc của lớp loại được biên dịch bên trong thành một hàm với các đối số bổ sung nhận từ điển với các cài đặt cần thiết của từng lớp loại cụ thể.

  • Có bất kỳ khả năng nào khác làm thế nào biên dịch các lớp loại?
  • Nếu vậy, lợi thế (dis) của họ là gì?
  • Và trình biên dịch nào sử dụng chúng?

4
Có khá nhiều tài liệu về chủ đề này. Có thể bắt đầu với Lớp thực hiện Loại của J. Peterson, M. Jones. Bạn cũng có thể xem Class Classes là Đối tượng và Ý nghĩa của Oliveira và cộng sự, nói về điều này trong bối cảnh của Scala, nhưng có một phần khá lớn về công việc liên quan.
Martin Berger

1
Tôi tìm thấy một liên kết đến bài báo: Thực hiện các loại lớp. John Peterson và Mark P. Jones .
Petr Pudlák

1
@MartinBerger làm cho câu trả lời này?
Suresh Venkat

Một cái khác có thể được tìm thấy ở đây .
Martin Berger

@Suresh Venkat, tôi không muốn đưa ra câu trả lời vì tôi không chắc hai câu này là câu trả lời hay nhất, hay thậm chí là hay. Đã được một thời gian kể từ khi tôi xem xét việc triển khai các ngôn ngữ chức năng. Có lẽ một số cơ quan FP thường trú có thể kêu vang.
Martin Berger

Câu trả lời:


8

JHC sử dụng một cách tiếp cận khác. Ngôn ngữ trung gian của trình biên dịch là một phép tính lambda được gõ phụ thuộc vào nơi không có sự phân biệt giữa các loại và giá trị. Do đó, JHC có thể thực hiện phân tích trường hợp về tham số loại của hàm và gọi trực tiếp hàm quá tải.

Trang web JHC đi sâu vào việc triển khai, cũng như các ưu điểm của nó so với việc thực hiện từ điển tiêu chuẩn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.