Перечислимые типы
Перечислимые типы определяют упорядоченные множества значе- ний через перечисление идентификаторов, которые обозначают эти значения. Упорядочение множеств выполняется в соответствии с пос- ледовательностью, в которой перечисляются идентификаторы.
---- ---------------- ---- перечислимый -->¦ ( +--->¦ список +--->¦ ) +---> тип L---- ¦идентификаторов¦ L---- L----------------
список -------------- идентификаторов -------->¦идентификатор+---T----> ^ L-------------- ¦ ¦ ---- ¦ L------+ , ¦<------------ L----
При указании идентификатора в списке идентификаторов пере- числимого типа он описывается как константа для блока, в котором указано описание перечислимого типа. Типом этой константы являет- ся описанный перечислимый тип.
Порядковый номер перечислимой константы определяется ее по- зицией в списке идентификаторов при описании. Перечислимый тип, в котором описывается константа, становится ее типом. Первая пере- числимая константа в списке имеет порядковый номер 0.
Приведем пример перечислимого типа:
type suit = (club, diamond, heart, spade);
Согласно этим описаниям diamond является константой типа suit.
При применении функции Ord к значению перечислимого типа Ord возвращает целое число, которое показывает, какое положение зани- мает это значение в отношении других значений этого перечислимого типа. Согласно предшествующим описаниям, Ord(club) возвращает 0, Ord(diamond) возвращает 1 и так далее.