删除列表中的重复对

ser*_*lty 4 haskell tuples function list

我熟悉nub包含数字,字符或字符串的列表上的函数,但有人可以向我解释如何在对列表中使用该nub函数Data.List吗?

例:

[('a', 3),( 'b', 2),('a', 1),('b', 4)]
Run Code Online (Sandbox Code Playgroud)

[('a', 3),('b', 2)]
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我想删除所有对中的键(键,值)已在列表中的对.

גלע*_*רקן 8

这是一种方式:

Prelude Data.List> nubBy (\(x,_) (x', _) -> x == x') [('a',1),('b',2),('b',3)]
[('a',1),('b',2)]
Run Code Online (Sandbox Code Playgroud)

  • 这个lambda也可以写成``(==)`on` fst``,``from`来自`Data.Function`. (6认同)