Tổng số người mới ở đây, đang gặp khó khăn.Haskell: Làm thế nào tôi có thể định nghĩa một loại lớp cho các bộ?
Tôi đang cố xác định loại loại cho tập hợp. Đối với trường hợp này, nó sẽ chỉ yêu cầu định nghĩa 'tồn tại'. 'tồn tại' sẽ lấy một tập hợp và chức năng trên một mục đã đặt và trả lại một boolean. Làm thế nào tôi có thể xác định điều đó trong Haskell?
Sau đây có phải là đúng hướng không? Vì vậy, có là định nghĩa kiểu lớp và một thực hiện của bộ với danh sách, mà 'tồn tại' trả về true cho bây giờ ..
-- Set.hs --
class Set a b where
exists :: a -> (b -> Bool) -> Bool
-- ListSet.hs --
instance Set ListSet a where
exists a f = True
-
(kết quả: Quá nhiều tham số cho lớp 'Set ')
Tất nhiên, thuộc tính thứ hai yêu cầu loại phần tử là tham số kiểu cuối cùng cho loại thiết lập - không phải lúc nào cũng có thể, như nếu bạn muốn tạo một cá thể cho 'a -> Bool'. Mặt khác, các gia đình có liên quan sẽ giải quyết được điều đó. – Carl
Cảm ơn! Tôi đã làm việc theo cách thứ hai! Tôi phải thừa nhận rằng tôi không hoàn toàn hiểu những gì xảy ra ở đó, nhưng hy vọng nó cho thấy chính nó với tôi ... – tero