-
TraditionalRecordSyntax -
- Начиная с:
-
7.4.1
- Статус:
-
Включено по умолчанию.
Разрешает традиционный синтаксис записей (например,
C {f = x}).
Традиционный синтаксис записей, например C {f = x}, включён по умолчанию. Чтобы отключить его, можно использовать расширение NoTraditionalRecordSyntax.
При использовании NoTraditionalRecordSyntax нельзя определять тип данных-запись или использовать синтаксис записей в выражении. Например, для всего перечисленного ниже требуется TraditionalRecordSyntax:
data T = MkT { foo :: Int } -- record datatype definition
x = MkT { foo = 3 } -- construction
y = x { foo = 3 } -- update
f (MkT { foo = i }) = i -- pattern matching
Однако, если функция-селектор поля доступна в области видимости, её можно использовать обычным образом. (Это возможно, если модуль, использующий NoTraditionalRecordSyntax, импортирует модуль, в котором запись была определена при включённом TraditionalRecordSyntax.) Если вы хотите отключить функции-селекторы полей, используйте расширение NoFieldSelectors.