检查元素是否存在于Haskell的列表中

西曼·什雷斯塔(Siman Shrestha)

我正在尝试创建一个递归函数,以检查“ a”是否在数组中。我正在尝试将尾巴的头部与“ a”进行比较。但是,它不会每次都返回正确的布尔值,因为它只会一次拖尾。我该如何递归?

isElement :: Eq a => a -> [a] -> Bool
isElement a [] = False
isElement a (x:xs)
  | a == x = True
  | otherwise = False
  where x = head(xs)
西尔维奥·梅奥洛(Silvio Mayolo)

有几个问题。首先,您的where任务没有完成。x已经知道它是列表的头,因为它是(x:xs)构造的一部分,该构造将列表直接分解为变量。这样该行可以完全删除。其次,这里没有实际的递归。您需要调用isElementfalse来检查列表的其余部分,而不是简单地返回False

isElement :: Eq a => a -> [a] -> Bool
isElement a [] = False
isElement a (x:xs)
  | a == x = True
  | otherwise = isElement a xs

请注意,使用编译程序-Wall会警告您很多事情,包括未使用的变量。特别是,在您的示例中(删除了该where块之后),它xs是一个未使用的变量,这应该是一个危险信号,并且在这种情况下,可以使我们对问题有所了解:您从未使用过列表的其余部分,因此列表的其余部分将被忽略。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何检查元素是否已存在于列表中

函数检查元素是否存在于列表中

检查列表中的元素是否存在于python的多个列表中

检查给定列表中的元素是否存在于 DataFrame 的数组列中

GNU-make检查元素是否存在于列表/数组中

检查元素是否存在于数组中

如何检查元素是否存在于 Cypress 的 DOM 中?

如何检查元素是否存在于数组对象中

检查元素是否存在于mvc formcollection中

如何检查元素是否存在于对象中?

检查值是否已存在于字典列表中?

检查项目是否存在于 R 的嵌套列表中

检查元素存在于数组中

检查元素存在于数组中

如何检查列表 1 中的任何元素是否不存在于列表 2 中?- Python

Python:检查列表中的n个元素是否存在于字符串中;在any()和all()之间居中?

检查元素是否存在于列表的第N个位置

检查数字是否存在于子列表中并在python中返回子列表的索引

在不检索列表的情况下检查密钥是否存在于Redis列表中

检查列表是否存在于另一个列表中

如何检查列表值是否存在于也是列表的列值中

从用户获取输入并遍历列表以检查输入是否存在于列表中

ngIf检查类是否存在于元素上

检查数组中的元素是否存在于 Pandas DataFrame 中

TypeError:检查列表中的值是否存在于字典中时出错

检查文件列表中的文件是否存在于特定目录中

Pandas 检查字符串中的每个单词是否都存在于列表中

Javascript检查元组的第一个元素是否存在于元组数组中

检查元素是否存在于根目录/子目录中