haskell - 创建列表理解时出现 Haskell 错误
问题描述
我正在按照本指南创建列表理解。
data Value = Two|Three|Four|Five|Six|Seven|Eight|Nine|Ten|J|Q|K|A
deriving (Eq, Ord, Enum)
data Suite = Hearts | Spades | Diamonds | Clubs
deriving (Eq, Ord, Enum)
type Card = (Value, Suite)
pack :: [Card]
pack = [(Value,Suite) | Value <- [Two .. A], Suite <- [Hearts .. Clubs]]
当我创建 pack 函数时,它总是抛出
error: Data constructor not in scope: Suite :: Suite
解决方案
pack :: [Card]
pack = [(Value,Suite) | Value <- [Two .. A], Suite <- [Hearts .. Clubs]]
的左侧<-
应该是一个变量(或其中包含变量的模式)。在 Haskell 中,它们以小写字母开头。尝试这个:
pack :: [Card]
pack = [(value,suite) | value <- [Two .. A], suite <- [Hearts .. Clubs]]
推荐阅读
- excel - 为什么我的代码找不到正确的单元格并识别重复项?
- r - 如何增加 R Markdown 中项目符号点之间的距离?
- python - PySpark - 按数组列分组
- python - SAS 数据集用 ssh 连接描述
- mysql - 加入子查询外的列
- php - 如何使用 PHPMailer 发送带有主题/wordpress 框架的电子邮件?
- apache-tika - 有没有办法在 tika-server 中关闭嵌入式文档的解析?
- csv - 如何在 mule 4 中转置 csv?
- javascript - Reactjs 从日历中异步加载事件 - Google Calendar API
- c# - 如何以最易读的方式使用 LanguageExt 在 C# 中构建嵌套的 HashMap?