Я новичок в OCaml. Я хочу определить тип, который используется только в одной функции. Я не хочу делать это доступным вне этой функции. Можем ли мы определить его внутри этой функции? Или есть другой способ добиться того же?Можем ли мы определить типы внутри функции в OCaml?
8
A
ответ
12
Если у вас есть последняя версия OCaml, вы можете использовать локальный модуль:
let f x =
let module Local = struct
type t = A | B
end in
...
Это может быть более естественным для определения типа на верхнем уровне и просто оставить его из .mli
, хотя: что будет держать его глобально скрытым, хотя он будет видимым для другого кода в файле.
Смежные вопросы
- 1. Можем ли мы определить enum внутри функции?
- 2. Можем ли мы объявить функции внутри функций?
- 3. Можем ли мы определить статические функции в tclOO?
- 4. Почему мы не можем определить функцию внутри основной функции?
- 5. Можем ли мы опустить типы данных аргументов функции?
- 6. Можем ли мы определить отношения в Z3?
- 7. Можем ли мы определить статический член класса внутри конструктора?
- 8. Можем ли мы включить функции-члены внутри структуры в C++?
- 9. Можем ли мы определить переменные сеанса PHP в одном месте?
- 10. Можем ли мы использовать скриптлеты внутри Javascript?
- 11. Можем ли мы определить alias_method of! Method_name
- 12. Можем ли мы объявить переменные внутри начального блока функции plpgsql?
- 13. Можем ли мы написать класс внутри функции VBScript?
- 14. OCaml: как определить тип аргумента функции?
- 15. Линейные типы в OCaml
- 16. Можем ли мы получить элементы внутри iframe?
- 17. Можем ли мы использовать UmlStateMachineModelFactory внутри StateMachineBuilder
- 18. Можем ли мы назвать MapView внутри макета
- 19. Можем ли мы создать PDS внутри PDS
- 20. Можем ли мы использовать ThreadGroup внутри ThreadGroup
- 21. Можем ли мы генерировать внутри всегда блока?
- 22. мы можем определить функцию друга внутри класса в CPP
- 23. Можем ли мы дать нашим типы в андроида карте
- 24. Можем ли мы передавать типы в качестве параметров методам?
- 25. Можно ли определить аргумент rest в OCaml?
- 26. Можно ли определить исключение внутри функции
- 27. Можем ли мы определить вложенные проекты в проекте SBT?
- 28. Типы Widen в ocaml
- 29. Типы вариантов Ocaml
- 30. Почему мы используем параметры в функции, когда мы можем определить переменные в теле функции?
И вы можете открыть локальный модуль. – lukstafi