Информация об изменениях

Сообщение Re[6]: Эквивалентность record-ов от 19.10.2023 9:31

Изменено 19.10.2023 10:09 VladD2

Re[6]: Эквивалентность record-ов
Здравствуйте, Serginio1, Вы писали:

S>Различная эквивалентность нужна. Например сравнивать через HashSet, сортированные списки по определенным полям, ReferenceEquals итд.

Кроме того надо разруливать циклические ссылки итд. Слишком много параметров сравнения.

Тут есть два нюанса.

1. Удобство. Заставлять делать людей рутинную работу — глупо. Несомненно, если нужны какие-то нюансы, надо позволить людям заменить стандартную реализацию. Но по умолчанию должен работать самый ожидаемый вариант. Тогда не придется тратить время на непроизводительный труд.

2. Под записями (рекордами) лежат математические модели алгебраических типов и структурной типизации. Они не из пальца высосаны. И раз так, то нужно выдерживать все каноны этих моделей.

S>Проще для списков свою реализацию сделать.


Проще не делать ничего без необходимости. Проще, как раз, было бы реализовать для списков сравнение. И уже у конкретных видов коллекций сделать тот или ной вид сравнения. Для списков — последовательное сравнение (совпадение всех элементов), для сетов — совпадение множеств.

Ну и логично было бы сделать нормальный однонаправленный связанный список на рекордах, чтобы он был алгебраическим типом (как в Немерле).
Re[6]: Эквивалентность record-ов
Здравствуйте, Serginio1, Вы писали:

S>Различная эквивалентность нужна. Например сравнивать через HashSet, сортированные списки по определенным полям, ReferenceEquals итд. Кроме того надо разруливать циклические ссылки итд. Слишком много параметров сравнения.


Тут есть два нюанса.

1. Удобство. Заставлять делать людей рутинную работу — глупо. Несомненно, если нужны какие-то нюансы, надо позволить людям заменить стандартную реализацию. Но по умолчанию должен работать самый ожидаемый вариант. Тогда не придется тратить время на непроизводительный труд.

2. Под записями (рекордами) лежат математические модели алгебраических типов и структурной типизации. Они не из пальца высосаны. И раз так, то нужно выдерживать все каноны этих моделей.

S>Проще для списков свою реализацию сделать.


Проще не делать ничего без необходимости. Проще, как раз, было бы реализовать для списков сравнение. И уже у конкретных видов коллекций сделать тот или ной вид сравнения. Для списков — последовательное сравнение (совпадение всех элементов), для сетов — совпадение множеств.

Ну и логично было бы сделать нормальный однонаправленный связанный список на рекордах, чтобы он был алгебраическим типом (как в Немерле).