총체적인 여기의, 안간힘없는.하스켈 : 세트에 대한 타입 클래스를 어떻게 정의 할 수 있습니까?
세트에 대한 유형 클래스를 정의하려고합니다. 이 경우에는 '존재'의 정의 만 필요합니다. '존재'는 설정 항목에 대해 집합과 기능을 취하고 을 부울로 반환합니다. 하스켈에서 어떻게 정의 할 수 있습니까?
올바른 방향으로 다음과 같은 메시지가 표시됩니까? 클래스에 대한 너무 많은 매개 변수`설정 :
이 이 이이 (결과 - 그래서 형 클래스 정의와 '존재'지금 true를 반환하는 목록과 세트의 구현 ..
-- Set.hs --
class Set a b where
exists :: a -> (b -> Bool) -> Bool
-- ListSet.hs --
instance Set ListSet a where
exists a f = True
이있다 ')
물론, 후자는 요소 유형을 집합 유형에 대한 마지막 유형 매개 변수로 요구합니다. 'a -> Bool'에 대한 인스턴스를 작성하려는 경우처럼 항상 가능한 것은 아닙니다. 반면에 연관 형 패밀리는이를 해결할 수 있습니다. – Carl
감사합니다. 나는 두 번째 방법으로 일하고있어! 나는 거기에 무슨 일이 일어나는지 잘 이해하지 못함을 인정해야하지만, 잘하면 그것은 나 자신을 드러낸다. – tero