Trong Java, chúng ta có thể tạo các đối tượng/thể hiện từ các lớp. Trong Haskell chúng ta có thể làm cho các trường hợp từ kiểu lớp học, ví dụ:Ví dụ có ý nghĩa gì trong Haskell?
data ShirtSize = S | M | L -- Here ShirtSize is a enum data-type
class MyEq a where
(==) :: a -> a -> Bool
instance MyEq ShirtSize where -- Here ShirtSize is an instance of the MyEq type-class
S == S = True
M == M = True
L == L = True
_ == _ = False
Đây không phải là cùng một câu hỏi như: confused about function as instance of functor in haskell Obs: Tôi không yêu cầu cách thức hoạt động fmap, tôi yêu cầu những gì decleration dụ nghĩa trong Haskell .
Câu hỏi của tôi là: Ví dụ có ý nghĩa gì trong haskell? Trong java chúng ta có thể tạo các thể hiện từ các lớp, nhưng trong haskell có vẻ như các thể hiện là các kiểu (như ShirtSize) mà bạn có thể áp dụng các hàm kiểu lớp trên (ví dụ: hàm (==) từ MyEq). Tôi có đúng không? và cũng là một ví dụ trong Haskell so với một thể hiện/đối tượng trong Java là gì?
Nó giống như "thực hiện Giao diện" trong Java. – Bergi
Tôi nghĩ rằng bạn đóng đinh nó với "trường hợp là các loại (như ShirtSize) mà bạn có thể áp dụng các chức năng kiểu lớp trên (ví dụ: (==) chức năng từ MyEq)." Hầu như mọi phòng đều để lại câu trả lời sau đó. Có sự nhầm lẫn nào nữa mà chúng tôi có thể nhận xét khi chúng tôi phản hồi không? –
Đọc phần Typeclasses 102 từ http://learnyouahaskell.com/making-our-own-types-and-typeclasses cho một mô tả thực sự tốt, tôi nghĩ rằng –