Spec-Zone.ru › OCaml 5.0

Глава 27 Основная библиотека

  • 27.1 Встроенные типы и предопределённые исключения
  • 27.2 Модуль Stdlib: модуль, открытый по умолчанию

В этой главе описывается основная библиотека OCaml, которая состоит из объявлений встроенных типов и исключений, а также модуля Stdlib, предоставляющего базовые операции над этими встроенными типами. Модуль Stdlib является особым по двум причинам:

  • Он автоматически подключается к объектным файлам пользователя командой ocamlc (глава 13).
  • Он автоматически «открывается» при запуске компиляции или запуска системы интерактивной работы. Поэтому можно использовать неуточнённые идентификаторы для ссылки на функции модуля Stdlib, без добавления директивы open Stdlib.

27.1 Встроенные типы и предопределённые исключения

Следующие встроенные типы и предопределённые исключения всегда определены в среде компиляции, но не являются частью какого-либо модуля. Вследствие этого к ним можно обращаться только по их коротким именам.

Встроенные типы

 type int
Тип целочисленных чисел.
 type char
Тип символов.
 type bytes
Тип последовательностей байтов (для записи).
 type string
Тип последовательностей символов (для чтения).
 type float
Тип чисел с плавающей точкой.
 type bool = false | true
Тип булевых значений (логическое значение).
 type unit = ()
Тип единичного значения.
 type exn
Тип значений исключений.
 type 'a array
Тип массивов, элементы которых имеют тип 'a.
 type 'a list = [] | :: of 'a * 'a list
Тип списков, элементы которых имеют тип 'a.
type 'a option = None | Some of 'a
Тип необязательных значений типа 'a.
type int32
Тип 32-битных целых чисел со знаком. Литералы для 32-битных целых чисел имеют суффикс l. См. модуль Int32.
type int64
Тип 64-битных целых чисел со знаком. Литералы для 64-битных целых чисел имеют суффикс L. См. модуль Int64.
type nativeint
Тип целых чисел со знаком, соответствующий платформе (32 бита на 32-битных процессорах, 64 бита на 64-битных процессорах). Литералы для целых чисел платформы имеют суффикс n. См. модуль Nativeint.
type ('a, 'b, 'c, 'd, 'e, 'f) format6
Тип строк формата. 'a — тип параметров формата, 'f — тип результата для функций в стиле printf, 'b — тип первого аргумента, передаваемого функциям вывода %a и %t (см. модуль Printf), 'c — тип результата этих функций, а также тип аргумента, передаваемого первому аргументу функций в стиле kprintf, 'd — тип результата для функций в стиле scanf (см. модуль Scanf), а 'e — тип функции-приёмника для функций в стиле scanf.
type 'a lazy_t
Этот тип используется для реализации модуля Lazy. Его не следует использовать напрямую.

Предопределённые исключения

exception Match_failure of (string * int * int)
Исключение, генерируемое, когда ни один из вариантов сопоставления с образцом в операторе match не применим. Аргументами являются местоположение ключевого слова match в исходном коде (имя файла, номер строки, номер столбца).
exception Assert_failure of (string * int * int)
Исключение, генерируемое при неудаче проверки утверждения. Аргументами являются местоположение ключевого слова assert в исходном коде (имя файла, номер строки, номер столбца).
exception Invalid_argument of string
Исключение, генерируемое функциями библиотеки для обозначения того, что заданные аргументы не имеют смысла. Строка содержит некоторую информацию для программиста. Как правило, это исключение не должно перехватываться, оно указывает на ошибку программирования, и код должен быть изменён, чтобы не вызывать его.
exception Failure of string
Исключение, генерируемое функциями библиотеки для обозначения того, что они не определены для заданных аргументов. Строка предназначена для предоставления некоторой информации программисту; вы не должны использовать сопоставление с образцом на строковые литералы, потому что они могут измениться в будущих версиях (используйте Failure _ вместо этого).
exception Not_found
Исключение, генерируемое функциями поиска, когда искомый объект не найден.
exception Out_of_memory
Исключение, генерируемое сборщиком мусора, когда в памяти недостаточно места для завершения вычисления. (Не надёжно для выделения памяти на вспомогательном стеке).
exception Stack_overflow
Исключение, генерируемое интерпретатором байткода, когда стек вычислений достигает максимального размера. Это часто указывает на бесконечную или чрезмерно глубокую рекурсию в программе пользователя. До версии 4.10 оно не полностью реализовывалось компилятором кода для нативного исполнения.
exception Sys_error of string
Исключение, генерируемое функциями ввода-вывода для сообщения об ошибке операционной системы. Строка предназначена для предоставления некоторой информации программисту; вы не должны использовать сопоставление с образцом на строковые литералы, потому что они могут измениться в будущих версиях (используйте Sys_error _ вместо этого).
exception End_of_file
Исключение, генерируемое функциями ввода для обозначения достижения конца файла.
exception Division_by_zero
Исключение, генерируемое операциями целочисленного деления и остатка, когда их второй аргумент равен нулю.
exception Sys_blocked_io
Особого рода исключение Sys_error, генерируемое, когда на канале ввода-вывода без блокировки невозможно выполнить ввод-вывод.
exception Undefined_recursive_module of (string * int * int)
Исключение, генерируемое при оценке определения рекурсивного модуля с ошибкой. (См. раздел 12.2.) Аргументами являются местоположение определения в исходном коде (имя файла, номер строки, номер столбца).

27.2 Модуль Stdlib: модуль, открытый по умолчанию

  • Модуль Stdlib: модуль, открытый по умолчанию

© 1995-2022 INRIA.
https://v2.ocaml.org/releases/5.0/htmlman/core.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API