haskell - 很难理解如何使用 nubBy

标签 haskell

我有一个问题,我必须操作 float 列表的列表。 [[漂浮]]。这些浮点数列表的长度为 4。我想删除测试前 3 个元素的重复项,但忽略第 4 个。这是多部分问题的最后一部分,我已经把头撞在墙上一段时间了,想知道如何使用它。我找不到任何有用的信息。

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

最佳答案

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

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

关于haskell - 很难理解如何使用 nubBy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8046306/

相关文章:

haskell - 为什么 Cabal 工具不使用 Setup.lhs/Setup.hs?

haskell - 为什么 Alternative 类型类需要是 Control.Applicative 的子类

haskell - 如何使用更高等级(rank-N)类型多态性来表达存在类型?

haskell - 简单的unix域套接字服务器

haskell - 为什么 <$> 只作用于一对中的第二个成员?

list - 创建二维列表矩阵

haskell - 我的第一个 Haskell 程序有哪些可以改进的地方?

haskell - 在 Haskell 中执行 while 循环

algorithm - 如何在 Haskell 中实现 Dijkstra 算法

haskell - 类别中初始对象和终止对象之间的差异