Как определить dataype кортеж списков touples, включая списки в ocaml? - PullRequest
0 голосов
/ 29 апреля 2018

Я получаю ошибку, когда определяю тип как: type table = (string * (string * string list) list) для кодирования этого значения:

let atable = (
  "Student", 
  [
  ("Id", ["2";"4";"7";"9"]);
  ("Name", ["Jim";"Linnea";"Steve";"Hannah"]);
  ("Gender",["Male";"Female";"Male";"Female"]);
  ("Course",["Geography";"Economics";"Informatics";"Geography"
  ])

Я использую эту среду , так как у меня были трудности с использованием Cygwin в Windows.

Как определить тип данных, удовлетворяющий приведенной выше таблице данных ученика?

1 Ответ

0 голосов
/ 29 апреля 2018

Во-первых, ваше выражение синтаксически недопустимо. Отсутствует ]) в конце.

OCaml выводит типы вещей, поэтому, когда у вас есть правильное выражение, вы можете задать верхний уровень для типа:

# let atable = (
  "Student",
  [
  ("Id", ["2";"4";"7";"9"]);
  ("Name", ["Jim";"Linnea";"Steve";"Hannah"]);
  ("Gender",["Male";"Female";"Male";"Female"]);
  ("Course",["Geography";"Economics";"Informatics";"Geography"
    ])]);;

val atable : string * (string * string list) list =
  ("Student",
   [("Id", ["2"; "4"; "7"; "9"]);
    ("Name", ["Jim"; "Linnea"; "Steve"; "Hannah"]);
    ("Gender", ["Male"; "Female"; "Male"; "Female"]);
    ("Course", ["Geography"; "Economics"; "Informatics"; "Geography"])])

Так что тип действительно string * (string * string list) list.

Если после исправления синтаксиса у вас все еще есть проблема, проблема должна быть в другом месте. Было бы полезно увидеть полный пример вместе с конкретной ошибкой, которую вы видите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...