很难理解如何使用nubBy

Der*_*yer 5 haskell

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

fixDuplicates :: [[Float]] -> [[Float]]
fixDuplcates [[]] = [[]]
fixDuplicates x = nubBy ?
Run Code Online (Sandbox Code Playgroud)

ham*_*mar 10

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

fixDuplicates xs = nubBy firstThreeMatch xs
   where firstThreeMatch ys zs = take 3 ys == take 3 zs
Run Code Online (Sandbox Code Playgroud)

  • 可以删除重复并成为`nubBy((==)\`on \`take 3)`并附加导入`Data.Function`. (8认同)