Смотрите предполагаемые типы в сложном коде OCaml - PullRequest
9 голосов
/ 12 мая 2011

Я новичок в OCaml, работающий с довольно сложным (по крайней мере для меня) кодом OCaml, который я не писал.Было бы очень полезно понять это, если бы я мог видеть предполагаемые типы для некоторых значений, как я могу сделать с F # и Visual Studio, наведя курсор на любое значение, например:

F# showing inferred type

(скриншот заимствован у http://theburningmonk.com/2010/01/learning-f-part-1/)

Полагаю, я мог бы разбить код и передать его на верхний уровень, чтобы получить типы, но есть ли другой, более простой способ?

Ответы [ 4 ]

8 голосов
/ 12 мая 2011

Сначала вы должны скомпилировать свой файл (foo.ml) с флагом -annot.Это создает файл аннотации (foo.annot), который содержит информацию о типе всех идентификаторов внутри.Вы можете включить это как часть вашего make-файла или процесса сборки.

Затем вам нужно полагаться на IDE для отображения этой информации.Я делаю это в Туареге (режим emacs), используя Ctrl + C , Ctrl + T , который выделяет текущее выражение и отображаетего тип.

7 голосов
/ 12 мая 2011

OcaIDE , который является плагином O'Caml для Eclipse, отображает предполагаемые типы на лету при редактировании вашего кода.

Пример:

enter image description here

1 голос
/ 13 мая 2011

Что мне подходит при чтении кода OCaml, так это начать с файлов .mli, чтобы увидеть общую структуру проекта.Оттуда, имея представление о том, что это за зависимости, вы можете исследовать с верхнего уровня.

В качестве альтернативы, вы можете ocamlc -i файл, о котором идет речь, для обзора всех объявленных типов и значений, или использоватьРежим туарегов в Emacs, как и в других местах, если вы из этого убеждения.

1 голос
/ 12 мая 2011

Вы можете ввести код на верхнем уровне ocaml.Да, это не так красиво, но покажет типы.

...