很难理解如何使用nubBy

时间:2011-11-08 05:24:57

标签: haskell

我有一个问题,我必须操纵一个浮动列表的列表。 [[浮动]]。这些浮点数列表的长度为4.我想删除测试前3个元素的重复项,但忽略第4个元素。这是多部分问题的最后一部分,我一直在墙上敲了一会儿弄清楚如何使用它。我找不到任何有用的信息。

fixDuplicates :: [[Float]] -> [[Float]]
fixDuplcates [[]] = [[]]
fixDuplicates x = nubBy ?

1 个答案:

答案 0 :(得分:10)

nubBy使用一个函数来比较元素的相等性。您对等式的定义是,如果前三个元素匹配,则两个列表相等。一个简单的实现是:

fixDuplicates xs = nubBy firstThreeMatch xs
   where firstThreeMatch ys zs = take 3 ys == take 3 zs