Niedawne OCaml 3.12 wprowadza feature modułów w opakowaniach wysokiej klasy:Jakie są dobre zastosowania modułów pakowanych OCaml?
moduły pakietów na najwyższym poziomie.
- nowy rodzaj typu słowa, pakowanych modułów:
(module PT)
- nowego rodzaju ekspresji, aby opakowanie modułu jako wartości pierwszej klasy:
(module MODEXPR : PT)
.- Nowy rodzaj wyrażeń modułu, do rozpakowania wartości pierwszej klasy jako moduł:
(val EXPR : PT)
.- PT to rodzaj paczki w postaci
S
lubS with type t1 = ... and ... and type tn = ...
(odnosi się do typu modułu).
Gdzie mogę znaleźć motywujące przykłady lub dokumenty wykorzystujące tę funkcję?
O ile pamiętam, Moscow ML, implementacja SML wykorzystująca lampę caml jako back-end, była pierwszą implementacją modułów pierwszej klasy. Odpowiednia sekcja dokumentacji Moscow ML odnosi się do plików mosml/examples/modules/{sita.sml, array.sml, choice.sml, matrix.sml} z dystrybucji dla przykładów. –
@Pascal Ładne referencje dla przykładów. To jest rozszerzenie autorstwa Claudio, o którym wspomniałem. – RD1