我正在定义一种代表我游戏板的类型:
type Position = (int * Piece) list
但是当我创建这样的列表时:
let board1 = [(1,Piece.BLACK);(2,Piece.WHITE);(3,Piece.BLACK);(4,Piece.WHITE);
...]
我创建了一个(int * Piece)列表列表,而不是一个Position。
我该怎么改变?哪种方法正确?
例如:
val board1 : (int * Piece) list =
[(1, BLACK); (2, WHITE); (3, BLACK); (4, WHITE);
答案 0 :(得分:1)
如果您希望它使用您的Position
类型,则需要告诉它,否则它不知道您想要的(您可以轻松创建仅仅(int * Piece) list
的5种类型,它不知道选择哪一个。
您可以通过将: Position
添加到decleration来强制执行此类型:
type Piece = BLACK | WHITE
type Position = (int * Piece) list
let board1 : Position = [(1, BLACK); (2, WHITE); (3, BLACK); (4, WHITE); ]