matrix stuff

This commit is contained in:
alex-s168
2024-04-02 20:25:45 +02:00
parent 54dde5f1f7
commit 9a571a072d
4 changed files with 114 additions and 7 deletions

View File

@@ -74,4 +74,25 @@ fun <T> selfInitializingSequence(block: Provider<Sequence<T>>): Sequence<T> =
override fun iterator(): Iterator<T> =
Iter()
}
fun <T> generateSequenceWithIndex(len: Int, fn: (index: Int) -> T): IndexableSequence<T> =
object : IndexableSequence<T> {
override fun get(index: Int): T {
if (index >= len) error("Index $index out of bounds!")
return fn(index)
}
override fun iterator(): Iterator<T> =
object : Iterator<T> {
private var index = 0
override fun hasNext(): Boolean =
index < len
override fun next(): T {
if (index >= len) error("No next")
return fn(index ++)
}
}
}