Сопоставить одну запись карты

Я хочу добиться чего-то вроде следующего:

(_ : Map[K,Int]).mapKey(k, _ + 1)

И функция mapKey применяет свой второй аргумент ( Int => Int ) только к значению хранится под k . Есть ли что-то внутри стандартной библиотеки? Если нет, я уверен, что в Скалазе что-то есть.

Конечно, я могу написать эту функцию сам ( m.updated (k, f (m (k)) ), и это просто сделать. Но я сталкивался с этой проблемой несколько раз, так что, может быть, это уже сделано?

Для Scalaz я представляю что-то вроде следующего кода:

(m: Map[A,B]).project(k: A).map(f: B => B): Map[A,B]
5
задан ziggystar 11 January 2012 в 15:09
поделиться