Глава 11 Язык OCaml
2 Значения
- 2.1 Базовые значения
- 2.2 Кортежи
- 2.3 Записи
- 2.4 Массивы
- 2.5 Вариантные значения
- 2.6 Полиморфные варианты
- 2.7 Функции
- 2.8 Объекты
В этом разделе описаны виды значений, с которыми работают программы на OCaml.
2.1 Базовые значения
Целые числа
Целочисленные значения — это целые числа от −230 до 230−1, то есть от −1073741824 до 1073741823. Реализация может поддерживать более широкий диапазон целочисленных значений: на 64-разрядных платформах текущая реализация поддерживает целые числа от −262 до 262−1.
Числа с плавающей точкой
Значения с плавающей точкой — это числа, представленные в формате с плавающей точкой. В текущей реализации используются числа двойной точности, соответствующие стандарту IEEE 754, с мантиссой длиной 53 бита и показателем степени в диапазоне от −1022 до 1023.
Символы
Символьные значения представлены 8-разрядными целыми числами от 0 до 255. Коды символов от 0 до 127 интерпретируются в соответствии со стандартом ASCII. В текущей реализации коды символов от 128 до 255 интерпретируются в соответствии со стандартом ISO 8859-1.
Строки символов
Строковые значения — это конечные последовательности символов. В текущей реализации поддерживаются строки длиной до 224 − 5 символов (16777211 символов); на 64-разрядных платформах предел составляет 257 − 9.
2.2 Кортежи
Кортежи значений записываются как (v1, …, vn) и обозначают n-кортеж значений от v1 до vn. В текущей реализации поддерживаются кортежи, содержащие до 222 − 1 элементов (4194303 элемента).
2.3 Записи
Значения-записи — это кортежи значений с метками. Значение-запись { field1 = v1; …; fieldn = vn } связывает значение vi с полем записи fieldi для i = 1 … n. В текущей реализации поддерживаются записи, содержащие до 222 − 1 полей (4194303 поля).
2.4 Массивы
Массивы — это конечные последовательности значений одного типа с переменным размером. В текущей реализации поддерживаются массивы, содержащие до 222 − 1 элементов (4194303 элемента), если только их элементы не являются числами с плавающей точкой (в этом случае — 2097151 элемент); на 64-разрядных платформах предел для всех массивов составляет 254 − 1.
2.5 Вариантные значения
Вариантные значения представляют собой либо конструктор-константу, либо неконстантный конструктор, применённый к некоторому числу значений. В первом случае запись имеет вид constr; во втором — constr (v1, ... , vn ), где значения vi называются аргументами неконстантного конструктора constr. Если аргумент только один, скобки можно опустить.
Следующие константы рассматриваются как встроенные конструкторы-константы:
| Константа | Конструктор |
| false | логическое значение «ложь» |
| true | логическое значение «истина» |
| () | значение типа «единица» |
| [] | пустой список |
В текущей реализации для каждого вариантного типа допускается не более 246 неконстантных конструкторов и 230−1 конструктора-константы.
2.6 Полиморфные варианты
Полиморфные варианты — это альтернативная форма вариантных значений, явно не относящаяся к заранее определённому вариантному типу и подчиняющаяся особым правилам типизации. Они могут быть константными, записываемыми как `tag-name, или неконстантными, записываемыми как `tag-name(v).
2.7 Функции
Функциональные значения — это отображения значений в значения.
2.8 Объекты
Объекты состоят из скрытого внутреннего состояния, представляющего собой запись переменных экземпляра, и набора методов для доступа к этим переменным и их изменения. Структура объекта описывается классом верхнего уровня, создавшим этот объект.
© 1995-2026 INRIA.
https://ocaml.org/manual/5.5/values.html