Skip to content

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

Description

@Intey

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

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

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

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

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

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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