Marc Knaup
12/17/2020, 2:49 PMClosedRange<T>.mapBounds()
val range = 1 .. 10
val shiftedRange = range.mapBounds { it + 10 } // = 11 .. 20
val characters = "a" .. "z"
val uppercaseCharacters = characters.mapBounds { it.toUpperCase() } // == "A" .. "Z"
fun <T : Comparable<T>, R : Comparable<R>> ClosedRange<T>.mapBounds(transform: (T) -> R): ClosedRange<R> =
transform(start) .. transform(endInclusive)
// plus overloads for primitive ranges
Marc Knaup
12/17/2020, 3:09 PMAstronaut4449
12/25/2020, 5:35 PMmapUpperBound
, mapLowerBound
, and mapBounds
which takes a pair?Marc Knaup
12/25/2020, 5:50 PMAstronaut4449
12/25/2020, 5:51 PMMarc Knaup
12/25/2020, 5:55 PMPair
involved.Astronaut4449
12/25/2020, 5:55 PMMarc Knaup
12/25/2020, 5:56 PM