Я пишу класс, который хранит массив определенных типов. У меня проблема, я думаю, с синтаксисом моего кода. Я хочу получить определенный тип внутри массива, но мой код продолжает выдавать ошибку.
Я уже создал класс, запишите нужный мне массив. я уже пробовал писать это таким образом;
[|(Rook, Black, (Alive of (A, 1)))]
[|(Rook, Black, (Alive of A, 1))]
[|(Rook, Black, Alive of (A,1))]
[|(Rook, Black, Alive of A,1)]
[|(Rook, Black, (A,1))
но, к сожалению, он показывает мой массив как chess_piece * chess_colour * (chess_letter * int)
или выдает операционную ошибку.
это мой определенный тип
type chess_letter = A | B | C | D | E | F | G | H
and chess_piece = King | Queen | Rook | Bishop | Knight | Pawn
and chess_colour = Black | White
and chess_position = Alive of chess_letter * int | Dead
массив должен включать [|(chess_piece, chess_colour, chess_position)|]
Синтаксис построения значения варианта Alive
:
Alive (A, 1)
of
используется только в определении типа. И не имеет значения, внутри или снаружи массива.
Кроме того, ни один из ваших массивов не является синтаксически правильным. В первых четырех отсутствует |
перед завершающим ]
, а в последнем отсутствуют оба.
Это не ООП, поэтому я удалил тег. В опубликованном вами коде нет классов или объектов.