# Defining an Instance of Ord

5 messages
Open this post in threaded view
|

## Defining an Instance of Ord

 Dear All,I am trying to produce a Map, where the (tricky) idea is that the key is a pair, (t1, t2), and the key is considered identical under ordering. Thus:(t1, t2) is the same as (t2, t1) but(t1, t3) is not the same as (t1,t2).This LOOKS like a equality definition. However, the Map key typeclass is defined as Ord, which requires me to define compare:``````instance Ord Edge where (Edge s1 _) `compare` (Edge s2 _) = s1 `compare` s2````````I am a bit stuck on how to use compare to define this type of eqlaity - any pointers very gratefully received.````BW,````Matt`` _______________________________________________ Beginners mailing list [hidden email] http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
Open this post in threaded view
|

## Re: Defining an Instance of Ord

 What about using new type and sort the pair before comparing? Dne 26.6.2015 15:56 "Matt Williams" <[hidden email]> napsal(a):Dear All,I am trying to produce a Map, where the (tricky) idea is that the key is a pair, (t1, t2), and the key is considered identical under ordering. Thus:(t1, t2) is the same as (t2, t1) but(t1, t3) is not the same as (t1,t2).This LOOKS like a equality definition. However, the Map key typeclass is defined as Ord, which requires me to define compare:``````instance Ord Edge where (Edge s1 _) `compare` (Edge s2 _) = s1 `compare` s2````````I am a bit stuck on how to use compare to define this type of eqlaity - any pointers very gratefully received.````BW,````Matt`` _______________________________________________ Beginners mailing list [hidden email] http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners _______________________________________________ Beginners mailing list [hidden email] http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
Open this post in threaded view
|

## Re: Defining an Instance of Ord

 > What about using new type and sort the pair before comparing? Matt needs to define Ord instance for (t1,t2) so he can use (t1,t2) in Map in non-standard way. he is not trying to sort or compare (t1,t2) just for the sake of it. I think.. _______________________________________________ Beginners mailing list [hidden email] http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners