Модуль 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