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

Сообщение Re[13]: IEquatable<T> от 14.02.2017 7:50

Изменено 14.02.2017 7:51 vdimas

Re[13]: IEquatable<T>
Здравствуйте, samius, Вы писали:

V>>Сам разве не обратил внимания, что между List<T> и ограничением IEquatable<T> нет никакой связи на уровне типов языка.

S>А ты не обратил внимания, что между списком в Хаскеле и Eq a тоже нет никакой связи на уровне типов языка?

В Хаскеле эта связь есть через текущий контекст вычислений, когда над каждым типом может выводиться более одного ограничения.
В ФП другая техника, другие принципы декомпозиции.


V>>Он ведь правильно пишет (по наитию, скорее):

V>>

V>>Как он (comparer) там создаётся вообще пофигу.

V>>"Пофигу", потому что ему хочется проигнорить вот этот "разрыв" в системе типов, из-за чего, собсно, и подключается рефлексия.
S>Какая рефлексия в List<T>?

Рефлексия идёт везде, где в либах используется Comparer<T>.Default.


S>Тебе принципиально впендюривать IndexOf с генериккомпарером внутрь List<T>?


Не понял?
Это отказ об обсуждения систем типов и возможностей параметрического полиморфизма? ))

Ну вот представь, что рефлексия (т.е. хак системы типов) недоступна.
И сразу станет принципиально.
Re[13]: IEquatable<T>
Здравствуйте, samius, Вы писали:

V>>Сам разве не обратил внимания, что между List<T> и ограничением IEquatable<T> нет никакой связи на уровне типов языка.

S>А ты не обратил внимания, что между списком в Хаскеле и Eq a тоже нет никакой связи на уровне типов языка?

В Хаскеле эта связь есть через текущий контекст вычислений, когда над каждым типом может выводиться более одного ограничения.
В ФП другая техника, другие принципы декомпозиции.


V>>Он ведь правильно пишет (по наитию, скорее):

V>>

V>>Как он (comparer) там создаётся вообще пофигу.

V>>"Пофигу", потому что ему хочется проигнорить вот этот "разрыв" в системе типов, из-за чего, собсно, и подключается рефлексия.
S>Какая рефлексия в List<T>?

Рефлексия идёт везде, где в либах используется Comparer<T>.Default.


S>Тебе принципиально впендюривать IndexOf с генериккомпарером внутрь List<T>?


Не понял?
Это отказ от обсуждения систем типов и возможностей параметрического полиморфизма? ))

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