Этот ответ SO описывает, как scala.collection.breakOut можно использовать для предотвращения создания расточительных промежуточных коллекций. Например, здесь мы создаем промежуточный Seq[(String,String)]:
val m = List("A", "B", "C").map(x => x -> x).toMap
Используя breakOut, мы можем предотвратить создание этого промежуточного Seq:
val m: Map[String,String] = List("A", "B", "C").map(x => x -> x)(breakOut)
Views решает ту же проблему и, кроме того, элементы доступа лениво:
val m = (List("A", "B", "C").view map (x => x -> x)).toMap
Я предполагаю, что создание оберток View довольно дешево, поэтому мой вопрос: есть ли настоящая причина использовать breakOut над View s?