ईक

2011-12-02 6 views
7

का एक उदाहरण कैसे बनाएं, मेरे पास Praat नामक एक डेटा प्रकार है। मुझे PraatEq का उदाहरण होना चाहिए ताकि दो Praat एस बराबर हों और केवल mx बराबर हों। कोई इसे कैसे करता है?ईक

-- 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) = ........... 

इस प्रकार मैं उदाहरण को परिभाषित करने की कोशिश कर रहा हूं लेकिन यह काम नहीं कर रहा है।

-- 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 

उत्तर

14
instance Eq Praat where 
    x == y = mx x == mx y 

यह काफी है कि तुम क्या कहा का एक सीधा अनुवाद है। xy के बराबर है जब mx x == mx y

+3

मैं इसे भी लिखूंगा '(==)' ऑन 'एमएक्स' –

संबंधित मुद्दे