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