Of course the most *general* way requires an Eq constraint:

> List.nub :: Eq a => [a] -> [a]

But there are better functions (already mentioned) with the less general Ord constraint.

Int and String are instances of Ord. "some other user defined data type" probably is too, but if you mean "any other user defined data type", even Eq may not be satisfied, e.g.

> data NotEvenEq a = FuncsNotEq (a->a)

The hammer you use depends on what you're hammering on.

Dan

Henning Thielemann wrote:
On Fri, 8 Feb 2008, [EMAIL PROTECTED] wrote:

Hallo!

Let's suppose I have a list [a,b,c,d,c,d]. I'd like to write
a function that returns a new list without duplicates (in
the example [a,b,c,d]). How can I do that? What is the most
general way? I'd like to use the same function for a list of
Int or String or some other user defined data type.

List.nub


_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to