Spec-Zone.ru › OCaml

Модуль Repr

module Repr: sig .. end

Функции, определённые для низкоуровневых представлений значений.

  • С версии 5.4

Физическое сравнение

val phys_equal : 'a -> 'a -> bool

phys_equal e1 e2 проверяет физическое равенство e1 и e2. Для изменяемых типов, таких как ссылки, массивы, последовательности байтов, записи с изменяемыми полями и объекты с изменяемыми переменными экземпляра, phys_equal e1 e2 истинно тогда и только тогда, когда физическое изменение e1 также затрагивает e2. Для неизменяемых типов поведение phys_equal зависит от реализации; однако гарантируется, что из phys_equal e1 e2 следует compare e1 e2 = 0.

Полиморфное сравнение

val equal : 'a -> 'a -> bool

equal e1 e2 проверяет структурное равенство e1 и e2. Изменяемые структуры (например, ссылки и массивы) равны тогда и только тогда, когда их текущее содержимое структурно равнозначно, даже если два изменяемых объекта не являются одним и тем же физическим объектом. Сравнение функциональных значений на равенство вызывает Invalid_argument. Сравнение циклических структур данных на равенство может не завершиться.

val compare : 'a -> 'a -> int

compare x y возвращает 0, если x равно y, отрицательное целое число, если x меньше y, и положительное целое число, если x больше y. Порядок, реализованный в compare, согласуется с предикатами сравнения (=), (<) и (>), а также с определённой выше функцией equal, за одним исключением — обработкой значения float nan. А именно, предикаты сравнения считают nan отличным от любого другого значения float, включая его самого, тогда как compare считает nan равным самому себе и меньшим любого другого значения float. Такая обработка nan гарантирует, что compare задаёт отношение полного порядка.

Применение compare к функциональным значениям может вызвать Invalid_argument. Применение compare к циклическим структурам может не завершиться.

Функцию compare можно использовать как функцию сравнения, необходимую функторам Set.Make и Map.Make, а также функциям List.sort и Array.sort.

val min : 'a -> 'a -> 'a

Возвращает меньшее из двух аргументов. Результат не определён, если один из аргументов содержит значение float nan.

val max : 'a -> 'a -> 'a

Возвращает большее из двух аргументов. Результат не определён, если один из аргументов содержит значение float nan.

© 1995-2026 INRIA.
https://ocaml.org/manual/5.5/api/Repr.html

Spec-Zone.ru

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