问候,我是Haskell的新手,我已经陷入为定义分配数据类型的困难.
我需要创建"策略"类型,它基本上是一个包含1-6个字符的字符串,每个字符代表一个数字值,我必须将大于9的值表示为一个字母(最多35个不同的值),我尝试定义一个辅助表示每个可能值的类型,并使用它来创建我的类型,但我的代码不起作用,我已经没有想法了.这是我一直在尝试的定义:
data Value = '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | 'A' | 'B' |
'C' | 'D' | 'E' | 'F' | 'G' | 'I' |'J' | 'K' | 'L' | 'M' | 'N' | 'O' | 'P' |
'Q' |'R' | 'S' | 'T' | 'U' | 'V' | 'W' | 'Y' | 'X' | 'Z'
data Strategy = Value | Value:Value | Value:Value:Value |
Value:Value:Value:Value | Value:Value:Value:Value:Value |
Value:Value:Value:Value:Value:Value
Run Code Online (Sandbox Code Playgroud)
值类型不接受数字,策略类型"排序"一直到第二个构造函数,然后它就会破灭.谢谢你的帮助!
就像你之前(删除)的问题一样,这看起来很像家庭作业.如果您选择真实姓名而不使用此丢弃帐户,这也会有所帮助.
此页面告诉您如何使用haskell的data
类型声明.你在做什么不同/错?
您使用字符而不是构造函数Value
.在'1'
'2'
等都是字符,你需要一个构造函数与零个或多个字段,如沿ValueCon1 Char
和ValueCon2 String
您正在使用列表构造函数,我假设的是一个字段Value
而不是为其定义任何新的构造函数Strategy
.也许你想要的data Strategy = Strat [Value]
,它会接受任何大小的列表.虽然更痛苦,但您可以使用有限数量的单独Value
字段定义许多策略构造函数.
BTW - 你的课程在哪里教?这个术语似乎很晚才能涵盖这些基础知识.