[英]Creating data type in Haskell
我想创建一个新的数据类型,该数据类型可以使用Start或A tuple of values。 这就是我所拥有的:
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))
但是,这给了我错误
Couldn't match type `(GameTree2, Move)' with `GameTree2'
Expected type: GameTree2
Actual type: GameTreeNode
数据GameTree2 =开始|
GameTreeNode派生(显示)
扩展为:
data GameTree2 = Start | (GameTree2, BoardSpec, Move) deriving(Show)
您不能使元组成为您类型的有效值。
您需要将其包装在构造函数中:
data GameTree2 = Start | Node GameTreeNode deriving(Show)
Node
是您为其选择的任何名称。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.