2010-07-01 8 views
1

Je suis la définition type AA pour représenter un conseil de mon jeu:En utilisant un type défini par l'utilisateur

type Position = (int * Piece) list 

Mais quand je crée une liste comme ceci:

let board1 = [(1,Piece.BLACK);(2,Piece.WHITE);(3,Piece.BLACK);(4,Piece.WHITE); 
       ...] 

-je créer une liste de (int * Piece) liste, pas une position.

Comment puis-je changer cela? Quelle est la bonne façon?

Par exemple:

val board1 : (int * Piece) list = 
[(1, BLACK); (2, WHITE); (3, BLACK); (4, WHITE); 
+0

Voir ma réponse ici . http://cs.hubfs.net/forums/thread/16066.aspx – Brian

Répondre

1

Vous devez dire si vous le souhaitez utiliser votre type Position, sinon il ne sait pas que vous voulez (vous pouvez facilement créer 5 types qui sont tous juste (int * Piece) list s , il ne saurait pas laquelle choisir

Vous pouvez forcer le type en ajoutant : Position au decleration comme ceci:.

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