Как хорошо использовать упакованные модули OCaml? - PullRequest
7 голосов
/ 29 июля 2010

В недавнем выпуске OCaml 3.12 появилась функция упакованных модулей первого класса:

Модули пакетов первого класса.

  • Новый тип выражения типа для упакованных модулей: (module PT)
  • Новый вид выражения для упаковки модуля в качестве первоклассного значения: (module MODEXPR : PT).
  • Новый вид выражения модуля для распаковки первоклассного значения как модуля: (val EXPR : PT).
  • PT - это тип пакета вида S или S with type t1 = ... and ... and type tn = ... (S относится к типу модуля).

Где я могу найти мотивирующие примеры или статьи с помощью этой функции?

1 Ответ

6 голосов
/ 29 июля 2010

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

Например, выбор между хеш-таблицей и сбалансированным двоичным деревом в качестве реализации Map.

Есть информация по адресу: https://forge.ocamlcore.org/docman/view.php/77/112/leroy-cug2010.pdf

Я полагаю, что на дизайн OCaml повлияло подобное расширение для SML от Клаудио Руссо - см., Например, «Первоклассные конструкции для стандарта ML» http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.34.8754&rep=rep1&type=pdf

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