प्रकार वर्गों के साथ चारों ओर खेलने के काम नहीं करता मैं प्रतीत होने वालाTypeclass उदाहरण
class Pair p a | p -> a where
one :: p -> a
two :: p -> a
यह काम करने के लिए ठीक है, उदा लगता है के साथ आया था
instance Pair [a] a where
one [x,_] = x
two [_,y] = y
हालांकि मैं tuples के लिए परेशानी में भाग लेता हूं। हालांकि निम्नलिखित परिभाषा संकलित ...
instance Pair (a,a) a where
one p = fst p
two p = snd p
... मैं इसे इस्तेमाल नहीं कर सकते जैसा कि मैंने उम्मीद:
main = print $ two (3, 4)
No instance for (Pair (t, t1) a)
arising from a use of `two' at src\Main.hs:593:15-23
Possible fix: add an instance declaration for (Pair (t, t1) a)
In the second argument of `($)', namely `two (3, 4)'
In the expression: print $ two (3, 4)
In the definition of `main': main = print $ two (3, 4)
वहाँ उदाहरण सही ढंग से परिभाषित करने के लिए एक तरीका है? या मुझे newtype
रैपर का सहारा लेना है?
धन्यवाद, बहुत रोचक! – Landei