Skip to content

Haskell: Глава 0250, классы типов. Свойства операций. #178

@Intey

Description

@Intey

В части "Что такое типы классов" есть параграф:

При этом на операции могут накладываться ограничения, называемые свойствами операций: ассоциативность бинарной операции, или тот факт, что единица с любым другим элементом, применённые к бинарной операции, дают на выходе исходный элемент.

Ограничения/свойства упоминаются вскользь и без пояснений "зачем". далее, почти в конце главы есть

Отметим важность наличия свойств (ограничений) у значений, определённых в классе типов. Так, например, в классе типов «сравнение на равенство» для любых двух значений данного типа одна из операций должна вернуть «истину», а другая «ложь». То есть два элемента данного типа либо равны, либо не равны. Недостаточно определить равенство для конкретного типа: необходимо убедиться в том, что для всех элементов данного типа свойства понятия равенства не нарушаются.

Тут можно споткнуться, потому что расстояние между этими параграфами почти вся глава и 3 задачи. Потому когда читатель дойдет до второго параграфа, у него может возникнуть вопрос "че за свойства?".

Хочется внести ясность, что свойства, это своего рода "соглашения" о том, как эти операции работают и они не обязательны.
Так же сделать бы во втором параграфе как бы ссылку или напоминание о каких свойствах идет речь

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions