scala / scala-library-next

backwards-binary-compatible Scala standard library additions
Apache License 2.0
67 stars 17 forks source link

Override LongMap updateWith, add transformValue and transformValueDefault #130

Open Adam-Vandervorst opened 1 year ago

Adam-Vandervorst commented 1 year ago

LongMap's is a performance oriented addition, yet updating it requires two lookups because the updateWith function is delegated to MapOps.

Furthermore, updateWith deals with the 'XT' Option[A] => Option[A] remap function, which discourages otherwise good uses of the function, and degrades performance. Therefore I propose to add transformValue(key: K)(transformation: V => V) and transformValueDefault(key: K)(default: => V)(transformation: V => V) that deal with the most common usecases.

julienrf commented 1 year ago

I think it’s possible to override updateWith already in Scala 2.13. Would you be interested in submitting a PR?

About the other suggestions, yes they would have to go into scala-library-next.