2011-09-09 55 views
27

Khi lặn sâu hơn vào Scala tôi nhấn cụm từ loại lớp. Nó đã gây nhầm lẫn bởi vì một lớp là một loại và một loại có thể là một lớp trong Scala và "loại" và "lớp" là trong chính nó thuật ngữ trừu tượng.Tại sao "loại lớp" được gọi là "loại lớp"?

Sau khi đọc một số ví dụ tôi có một cảm giác gì một lớp kiểu thể được, nhưng có lẽ đó là một cách tiếp cận dễ dàng hơn để có được một cái móc tinh thần (hình ảnh, khái niệm) với những gì một lớp loại là bằng cách giải thích tại sao nó có được đặt tên như thế.

Trả lời

27

Trong Haskell không có các lớp theo nghĩa Java/Scala, do đó, thuật ngữ này được sử dụng miễn phí (theo nghĩa "loại lớp", như Johannes Weiß nói).

Nó không được sử dụng trong tài liệu chính thức của Scala, nhưng mọi người đến từ Haskell nhận thấy họ có thể mô phỏng các loại lớp Haskell trong Scala và sử dụng lại tên.

+0

Cảm ơn bạn, giờ đây [câu trả lời cho quy ước đặt tên loại lớp trong scala] (http://stackoverflow.com/questions/7084090/naming-convention-for-typeclasses-in-scala/7084305#7084305) làm cho nhiều ý nghĩa hơn :-) – Lutz

+2

Hơn nữa, "loại các loại" đang sử dụng thuật ngữ gần bằng [ý nghĩa này] (http://en.wikipedia.org/wiki/Class_ (set_theory% 29). Trên thực tế, "UndecidableInstances" của GHC mở rộng làm cho nó rất có thể mã hóa * thích hợp * lớp học, và sau đó tiến hành, er, đối xử với họ như bộ. –

18

Bởi vì nó lớp (cùng nhau) các loại "có" một hoạt động thiết lập chung được xác định bởi loại lớp?

Tôi cảm thấy rất tự nhiên đối với tôi.

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