<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Hi Ozgur,<br>
well, I am getting a list of tuples from a previous function, and they
relate to edges in graphs, so I am not too keen to change that,
although that could be possible. But I never worked with sets in
Haskell, so will have to study.<br>
<br>
Regarding your suggestion - I have to study it, it is a bit advanced.
First, I see there is no paramter to nubSym  - I have never used that
syntax, shouldn't there be something like nymSym (x:xs) or so? <br>
Second, obviously there is a local function, fix. I understand this: <font
 class="Apple-style-span">fix (a,b) | a &gt; b = (b,a)</font><br>
<font class="Apple-style-span">but I am not sure how to interpret this:</font><br>
<font class="Apple-style-span">fix p = p. Where does p come from? How
does haskell know that it relates to (a,b), or the x as parameter?</font><br>
<br>
<font class="Apple-style-span">Just asking for clarification ,as I am
new to all this.</font><br>
<br>
<font class="Apple-style-span">Thanks </font><br>
<font class="Apple-style-span">M.</font><br>
<br>
On 9/28/2010 12:05 PM, Ozgur Akgun wrote:
<blockquote
 cite="mid:AANLkTinqOnDfze2u7U7-89O-8D4y5Jg6WoEo2hfkYDMH@mail.gmail.com"
 type="cite">
  <div class="gmail_quote">Hi,</div>
  <div class="gmail_quote"><br>
  </div>
  <div class="gmail_quote">On 28 September 2010 10:33, Martin Tomko <span
 dir="ltr">&lt;<a moz-do-not-send="true"
 href="mailto:martin.tomko@geo.uzh.ch">martin.tomko@geo.uzh.ch</a>&gt;</span>
wrote:<br>
  <blockquote class="gmail_quote"
 style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">I
have a list of (a,a) tuples, and am trying something like nub, but also
matching for symmetrical tuples.</blockquote>
  </div>
  <div><br>
  </div>
You can of course do this. One approach would be to simply 'fix' the
tuples according to some ordering, and then use standard nub - or a
better one.
  <div><br>
  </div>
  <div>But to me, the real question is this: If the order of your
tuples to don't matter, do you actually need tuples? There are other
types in which the order of the elements in a container does not change
the meaning; such as a set. You may want to use a Set from Data.Set, or
you can define a pair type in which ordering doesn't matter. It will
end up being a cardinality restricted set type though.</div>
  <div><br>
  </div>
  <div>If you just want to get it working, here is some code for the
first option:</div>
  <div><br>
  </div>
  <div>
  <div><font class="Apple-style-span" face="'courier new', monospace">nubSym
:: Ord a =&gt; [(a,a)] -&gt; [(a,a)]</font></div>
  <div><font class="Apple-style-span" face="'courier new', monospace">nubSym
= nub . map fix</font></div>
  <div><font class="Apple-style-span" face="'courier new', monospace">  where
fix (a,b) | a &gt; b = (b,a)</font></div>
  <div><font class="Apple-style-span" face="'courier new', monospace">  
     fix p = p</font></div>
  <div><br>
  </div>
Cheers,
  </div>
  <div>Ozgur</div>
</blockquote>
<br>
<br>
</body>
</html>