2010-07-01 79 views
1

我定义AA类型来表示我的游戏板:使用用户定义类型

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

见我的答案在这里。 http://cs.hubfs.net/forums/thread/16066.aspx – Brian 2010-07-01 19:23:47

回答

1

你需要告诉它,如果你希望它使用Position型,否则不知道你想要的(你可以很容易地建立5种类型的都只是(int * Piece) list小号,它不会知道该选哪

您可以通过添加: Position到decleration这样的强制类型:

type Piece = BLACK | WHITE 
type Position = (int * Piece) list 
let board1 : Position = [(1, BLACK); (2, WHITE); (3, BLACK); (4, WHITE); ]