Дисперсия (ковариация и контравариантность) в функциях Скалы

Я погружаюсь в концепции FP, используя Scala. Я думаю, что я наконец понял, что такое ковариация и контравариантность и почему типы функций являются контравариантными в своих типах аргументов и ковариантными в своих типах возвращаемых значений. Но есть еще кое-что, чего я не понимаю. В Скале List[+A] имеет предлог (+:) метод, который принимает S где S >: A, Если тип был Aкомпилятор выдаст ошибку: ковариантный параметр в контравариантной позиции, я не понимаю, почему факт объявления List[+A] марки A ковариантный в определении функции. Насколько я понимаю, ковариация и контравариантность относятся к более сложным типам, чем Aмонады или функции.

Список Scala: http://www.scala-lang.org/api/current/index.html

0 ответов

Другие вопросы по тегам