首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Int返回列表中的特定元组导致溢出

使用Int返回列表中的特定元组导致溢出
EN

Stack Overflow用户
提问于 2019-03-14 21:28:04
回答 2查看 48关注 0票数 0

代码应该获取一个Int并将其与列出的元组中的第一个Int进行比较(其他Int无关紧要),因此Int x应该与(( p,q,r):ys)中的p进行比较,只要x == p,就会返回一个列表(p,q,r),(p,q,r)。代码会编译,但在测试时会溢出,我不确定是语法问题还是没有补偿完整的列表。

代码语言:javascript
运行
复制
listTuples :: Int -> [(Int, Int, Int)] -> [(Int,Int,Int)]
listTuples x [] = []
listTuples x ((p,q,r) : ys)
 | x == p    = listTuples x ((p,q,r) : ys)
 | otherwise = []

测试:

代码语言:javascript
运行
复制
 listTuples 3 [(3,4,5),(4,3,5),(3,6,7)]

返回:

代码语言:javascript
运行
复制
 [(3,4,5),(3,6,7)]
EN

Stack Overflow用户

发布于 2019-03-14 21:32:11

您可以使用filter完成此操作

代码语言:javascript
运行
复制
listTuples' :: Int -> [(Int, Int, Int)] -> [(Int, Int, Int)]  
listTuples' x ls = filter (\(p, _, _) -> p == x) ls
票数 3
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55163795

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档