RosettaCodeData/Task/Remove-duplicate-elements/Python/remove-duplicate-elements-8.py

15 lines
328 B
Python

# nubBy :: (a -> a -> Bool) -> [a] -> [a]
def nubBy(p, xs):
def go(xs):
if xs:
x = xs[0]
return [x] + go(
list(filter(
lambda y: not p(x, y),
xs[1:]
))
)
else:
return []
return go(xs)