[英]Creating data type in Haskell
I would like to create a new data type that either takes in Start or A tuple of values. 我想创建一个新的数据类型,该数据类型可以使用Start或A tuple of values。 This is what I have: 这就是我所拥有的:
type Coord = (Int, Int)
data Direction = N | E | S | W
deriving (Eq, Show, Read)
type Move = (Coord, Direction)
type BoardSpec = [(Coord, Bool)]
type GameTreeNode = (GameTree2, BoardSpec, Move)
data GameTree2 = Start | GameTreeNode deriving(Show)
blahblah :: GameTree2
blahblah = blahb
blahb :: GameTreeNode
blahb = (Start, testbo, ((1, 1), N))
This however, gives me the error on blahblah 但是,这给了我错误
Couldn't match type `(GameTree2, Move)' with `GameTree2'
Expected type: GameTree2
Actual type: GameTreeNode
data GameTree2 = Start |
数据GameTree2 =开始|
GameTreeNode deriving(Show)
GameTreeNode派生(显示)
expands to:
扩展为:
data GameTree2 = Start | (GameTree2, BoardSpec, Move) deriving(Show)
You can't make a tuple a valid value of your type.
您不能使元组成为您类型的有效值。
You need to wrap it in a constructor: 您需要将其包装在构造函数中:
data GameTree2 = Start | Node GameTreeNode deriving(Show)
where Node
is whatever name you choose for it. Node
是您为其选择的任何名称。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.