list - 检查列表列表是否具有两个或多个相同的元素
问题描述
我需要编写一个函数来检查列表是否有两个或多个相同的元素并返回真或假。
例如[3,3,6,1]
应该返回true,但[3,8]
应该返回false。
这是我的代码:
identical :: [Int] -> Bool
identical x = (\n-> filter (>= 2) n )( group x )
我知道这很糟糕,而且它不起作用。我想将列表分组为列表列表,如果列表的长度> = 2,那么它应该返回 true,否则返回 false。
解决方案
用于any
获得 Bool 结果。
any ( . . . ) ( group x )
不要忘记对列表进行排序,group
对连续元素起作用。
any ( . . . ) ( group ( sort x ) )
您可以将 (not . null . tail) 用于谓词,作为选项之一。
推荐阅读
- python - ndb 数据存储区查询游标和索引问题
- swift - Core Data 生成的扩展文件中没有这样的模块“MyApp”
- spring-boot - 在我的 Spring Boot 的 Swagger2 文档中,我将时间戳字段文档作为 JSON 对象获取
- node.js - nginx反向代理nodejs
- php - 如果用户未登录 - 重定向到我的帐户进行注册:登录后,某些页面仍然重定向到我的帐户
- c# - 将屏幕像素作为字节数组获取
- java - 布尔函数中的 Firebase
- java - 如何解决错误在 Ubuntu 18.04 中使用 Eclipse 找不到工件 com.sun:tools:jar:1.0.0
- linux - IP_TRANSPARENT SYN 未在 localhost 上获得 SYN+ACK 响应
- javascript - 从其他页面链接时,如何偏移锚点以调整固定标题?