2
В 2.7 я мог бы сделать следующее:Scala 2.8 и карта просмотров
val lazyM: Map[_, _] = map.projection.mapElements(v => expCalc(v)) //MAP VIEW
Я не могу найти способ сделать это в 2.8 и фактически заканчиваясь с картой:
val m: Map[_, _] = map.view.map(kv => kv._1 -> expCalc(kv._2)).toMap //STRICT
Это похоже на значительную потерю функциональности, и поэтому я предполагаю, что он где-то скрывается в библиотеке коллекции. У кого-нибудь есть идеи?
Редактировать - глупо я предположил, что mapValues был точно такой же, как старые mapElements
Это не совсем «ленивым »(нуль или одна оценка для каждого ключа с теми задержками, которые были отложены как можно дольше), это больше похоже на« динамический », поскольку функция, предоставляемая в вызове' mapValues', оценивается * каждый раз, когда извлекается ключ в полученном виде карты *. –
Да, это то, что я имел в виду. Я не должен был использовать слово lazy –
Я бы сказал, что «mapValues возвращает представление». –