Написание функции с типом 'a -> string - PullRequest
6 голосов
/ 08 февраля 2011

Для целей отладки я хотел бы иметь функцию в OCaml, которая конвертирует в произвольный строковый тип, в настоящее время она есть у отладчика, но было бы здорово иметь ее.

Библиотека sexplib была бы идеальной, но дело в том, что я не могу изменить все типы, которые мне нужно добавить with sexp, и я также не могу использовать camlp4.

Есть ли такая функция? (Это не будет в рабочем коде, поэтому я принимаю грязные решения)

Что-то вроде Show класса типов Хаскелла было бы именно тем, что я имею в виду.

Спасибо за ваше время

1 Ответ

5 голосов
/ 08 февраля 2011

Модуль Std в Батареи включены предоставляет функцию dump, которая преобразует произвольные типы в читаемые строки.Он несколько ограничен - поскольку он не знает о типах, он не может печатать конструкторы для типов вариантов должным образом и заменяет их числами - но он все еще может быть довольно полезным.Поскольку информация о типе не доступна во время выполнения, это почти так же хорошо, как вы можете сделать.Отладчик и верхний уровень используют хитрость компилятора для получения лучших представлений, но это трудно, если не невозможно сделать в общей библиотеке.

Кажется, я помню также, что где-то видел более сложную библиотеку дампинга, но я не помнюгде.

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