Почему Set - это функция?

В Scala Set является функцией:

trait Set[A] extends (A => Boolean)

Это делает невозможным наличие ковариантного неизменяемого Set , потому что тип A встречается в контравариантной позиции. Напротив, Seq не определяется как функция. Уже есть некоторая информация по вопросу, почему наборы и последовательности разработаны таким образом:

Один ответ гласит, что причиной этого является математический фон. Но этот ответ не получил более подробного объяснения. Итак, каковы конкретные преимущества определения Set как функции или каковы были бы недостатки, если бы он был реализован по-другому?

15
задан Community 23 May 2017 в 12:15
поделиться