如何在 class 中使用定义的类型作为 Ocaml 中的 val?
How to use a defined type inside a class as a val in Ocaml?
我正在写一个 class 来存储定义类型的数组。我有问题 - 我认为 - 我的代码语法。我想在数组中获取定义的类型,但我的代码一直出错。
我已经创建了一个class,写下我需要的数组。我已经尝试过以这些方式编写;
[|(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
仅在类型定义中使用。而且无论在数组内部还是外部都没有区别。
另外,none 个数组在语法上是正确的。前四个在终止 ]
之前缺少一个 |
,最后两个都缺少。
我正在写一个 class 来存储定义类型的数组。我有问题 - 我认为 - 我的代码语法。我想在数组中获取定义的类型,但我的代码一直出错。
我已经创建了一个class,写下我需要的数组。我已经尝试过以这些方式编写;
[|(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
仅在类型定义中使用。而且无论在数组内部还是外部都没有区别。
另外,none 个数组在语法上是正确的。前四个在终止 ]
之前缺少一个 |
,最后两个都缺少。