Я хочу добиться чего-то вроде следующего:
(_ : 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]