[Haskell-beginners] nub... almost

Christopher Howard christopher.howard at frigidcode.com
Sat Jun 4 18:52:56 CEST 2011


On 06/04/2011 12:20 AM, Iustin Pop wrote:
> On Fri, Jun 03, 2011 at 11:49:01PM -0800, Christopher Howard wrote:
>> On 06/03/2011 11:37 PM, Christopher Howard wrote:
>>> Weird request: For a certain application, the "nub" function from
>>> Data.List is exactly what I need... almost. Nub removes duplicates,
>>> keeping the /first/ occurrence of each element. However, I need a
>>> function that removes duplicates, keeping the /second/ occurrence of
>>> each element. There wouldn't happen to be a function already that does
>>> this, would there?
>>>
>>> I'm working with a custom type which is a member of Eq, but some of the
>>> data in the type is not used in the comparison. So it is important which
>>> of the two "duplicates" are actually saved.
>>>
>>
>> I should qualify this: By "second" I mean "last". Of course, it is
>> possible for there to be more than one duplicate of any given element in
>> a list. E.g., if there are three identical elements in a list, I want
>> the third one, not the second one.
> 
> In that case, can't you simply revert the list, nub it, then revert
> again (i.e. reverse . nub . reverse)?
> 
> regards,
> iustin
> 

@iustin: Thanks, that should work well enough.

@Edwards: I'm not familiar with Data.Set, so I do not understand your
solution.

-- 
frigidcode.com
theologia.indicium.us



More information about the Beginners mailing list