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

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

最佳答案

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

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

09-27 20:00