haskell - 我如何使用 haskell 检查列表是否包含元组中的值

标签 haskell

我正在 Haskell 中编写一些图形函数,我想检查整数列表,例如

[1,4, 5, 7]

包含形成边的顶点,我将其表示为元组,如下所示

(1,5)

我试图采用一个接受列表和元组的函数,在这种情况下会返回 true,因为列表包含 1 和 5。我遇到的主要问题是我真的不知道如何搜索Haskell 中的列表。他们是一个函数,它接受类型 [a] 的列表和类型 a 的值,并根据 [a] 是否包含 a 返回一个 Bool ?

最佳答案

有一个函数可以检查一个值是否在列表中,

elem :: Eq a => a -> [a] -> Bool

使用它,您的函数可以轻松定义。

containsEdge :: [Int] -> (Int,Int) -> Bool
xs `containsEdge` (a,b) = (a `elem` xs) && (b `elem` xs)

关于haskell - 我如何使用 haskell 检查列表是否包含元组中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9624655/

相关文章:

windows - 无法将 Windows 上的 OpenCL 与 GHC 链接起来

Haskell:从具有一百万个值的列表构建 IntMap 时,我应该得到 "Stack space overflow"吗?

list - Haskell 惰性求值和带有无限列表的 let-in 表示法

Haskell:类型类和实例(不在范围内:数据构造函数..)

Haskell 性能 : Composition vs Application?

haskell : Using unboxed tuples lead to weird types during heap profiling

parsing - haskell /三连胜 : Parsing completely optional semicolons without polluting AST

haskell - 打印状态值进行调试

haskell - 如何在 Haskell 中扩展矩阵

haskell - 如何将 "extend"设为一个(部分)记录选择器?