list - 列表中的下一个元素

标签 list haskell list-comprehension

我在 Haskell 中有一个函数可以返回卡片的后继者。我知道如何使用列表理解来访问卡片,但不太确定如何获取下一张卡片,所以 pos+1。这是我的代码:

pCard :: Card->Deck->Card
pCard (K,C) _ = (A,S) --exception for last card
pCard crd pck = head [p | (pos,p) <- (zip [0..51] pck), crd==p]

最佳答案

提示:使用dropWhile (/= crd) pck 从头开始​​移除所有卡片,直到找到您的卡片。然后,剩下的第一张牌是crd。下一个就是你想要的。

不过,如果 pck 是一副标准顺序的牌组,遍历整个牌组以找到下一张牌似乎效率很低。

关于list - 列表中的下一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33529179/

相关文章:

function - haskell函数声明

C# 列表解析 = 纯语法糖?

python - 表达式的字典列表

json - 如何使用 Aeson 将 Haskell ADT 序列化为整洁的 JSON?

c - 如何调试链表程序?

haskell - 查找局部函数的推断类型

python - 如何在 python 中扩展字符串中的字符串?

python - 将列表理解式转换为简单的 for 循环

list - haskell中的排列

python - 在Python中创建另一个列表的相邻元素的列表