chcę osiągnąć coś jak poniżej:mapie pojedynczy wpis z mapy
(_ : Map[K,Int]).mapKey(k, _ + 1)
a funkcja mapKey
stosuje swój drugi argument (Int => Int
) tylko do wartości przechowywanej pod k
. Czy jest coś w standardowej lib? Jeśli nie, to założę się, że jest coś w Scalaz.
Oczywiście mogę napisać tę funkcję samodzielnie (m.updated(k,f(m(k))
) i jest to proste. Ale kilka razy doszłam do tego problemu, więc może już to zrobione?
Dla Scalaz sobie wyobrazić coś w poniższym kodzie:
(m: Map[A,B]).project(k: A).map(f: B => B): Map[A,B]
Czego chcesz się zdarzyć, jeśli 'A' klucz nie jest na mapie? Nic nie jest w porządku? Pytam, ponieważ 'updated' wstawi' (a -> f (m (a)) '... – huynhjl
@huynhjl Dla mojego przypadku użycia mam mapę z wartością domyślną. Myślę, że wydaje się bardziej naturalne nic się nie dzieje, zauważ, że moje proste rozwiązania zawiodą z wyjątkiem. – ziggystar