ursus
08/04/2025, 8:54 PMslice(..) please be an operator like in python?Youssef Shoaib [MOD]
08/04/2025, 9:27 PMget? You can have it take 3 argumentsYoussef Shoaib [MOD]
08/04/2025, 9:34 PMoperator fun <T> List<T>.get(indices: IntRange): List<T> = slice(indices)
// usage
list[1..5]
list[1..10 step 2]
list[10 downTo 1]ursus
08/04/2025, 10:08 PM2..end)? but i guess slice literal has that problem as wellYoussef Shoaib [MOD]
08/04/2025, 10:13 PMursus
08/04/2025, 10:14 PMfoo[2:], start is 0 always so obviously 0 is fine, but we need some literal for endYoussef Shoaib [MOD]
08/04/2025, 10:35 PM@JvmInline value class OpenEndedRange(val start: Int)
object End
val end: End = End
operator fun Int.rangeTo(end: End) = OpenEndedRange(this)
operator fun <T> List<T>.get(indices: OpenEndedRange): List<T> = slice(indices.start..lastIndex)
// usage
list[1..end]
It's a little over-engineered, so edit as desiredursus
08/04/2025, 11:08 PMjoseph_ivie
08/05/2025, 4:37 AMKlitos Kyriacou
08/05/2025, 8:34 AMend (which could very easily be the case).joseph_ivie
08/05/2025, 2:31 PMAyfri
08/10/2025, 4:55 PMend would be to have an object like Ranges with properties Ranges.start, Ranges.end etc