I'm interested to know the complete set of alternatives to subtype polymorphism in scala.
Основными инструментами для достижения статически проверяемого полиморфизма в Scala являются
Вызов всех этих «альтернатив», вероятно, неправильное слово, поскольку они так хорошо интегрированы. Нередко некоторые полиморфные алгоритмы могут быть выражены с использованием нескольких из этих инструментов в сочетании.
Также стоит отметить место for-comprehension в полиморфизме Scala.Поскольку понимания не кажутся особенно полиморфными. На первый взгляд, for-comprehension — это просто синтаксический сахар для вызовов filter/map/flatMap, а реализации этих методов, как правило, очень полиморфны. Таким образом, то, что выглядит сравнительно простым циклом for, может привести к действительно впечатляющим полиморфным эффектам.