Ниже приведены некоторые коды Ocaml, использующие Ocaml и Yo json (поддержка библиотеки Json для Ocaml).
match feat_json with
| `Assoc [("goal",`List goal_feats_json);
("tactic", `String tac_str); ("arguments",`List args_feats_json)] ::tl ->
Затем я показываю определение типа Yo json json
type json = [ `Assoc of (string * json) list
| `Bool of bool
| `Float of float
| `Int of int
| `List of json list
| `Null
| `String of string ]
Оба типа goal_feats_json
и args_feats_json
имеют тип json
. Тип бетона goal_feats_json
равен [< Int of int ] list
. Тип tac_str
является string
. Тип бетона args_feats_json
составляет [> Assoc of (string * [> Int of 'b | String of 'c ]) list ] list
. Но когда я скомпилировал файл, произошла следующая ошибка:
Error: This expression has type [< `Int of 'a ] list but an expression was expected of type
[> `Assoc of (string * [> `Int of 'b | `String of 'c ]) list ] list*
Кажется, что Ocaml обрабатывает как goal_feats_json
, так и args_feats_json
как [< Int of int ] list
. Я понятия не имею, почему произошла такая ошибка. Буду очень признателен, если кто-нибудь поможет мне.