7
Mam typ danych o nazwie Praat
. Chcę, aby Praat
było instancją Eq
, więc dwa Praat
s są równe wtedy i tylko wtedy, gdy mx
są równe. Jak to zrobić?Jak utworzyć typ wystąpienia Eq
-- data type
data Praat t = Praat [k] [(k,k,k,k)]
-- praat gives the maximum frequency
Praat t -> Int
mx (Praat [] _) = 0
mx (Praat (e:es) pt) = ...........
Oto jak próbuję zdefiniować instancję, ale nie działa.
-- I want to make Praat instance of Eq so that two Praat are equal
-- when their respective `mx` are equal
instance Eq Praat where
mx :: (Praat k)->Int
(mx k) == (mx k) = True
_ == _ = False
Zapisałbym nawet '(==) 'na' mx' –