karelpeeters
10/30/2019, 9:57 PMRuckus
10/30/2019, 9:59 PMkarelpeeters
10/30/2019, 10:04 PMRuckus
10/30/2019, 10:05 PMalex
10/30/2019, 10:07 PMkarelpeeters
10/30/2019, 10:09 PMfun <T> List<List<T>>.cartesian(): List<List<T>> {
val resultSize = this.fold(1) { a, l -> a * l.size }
return List(resultSize) { i ->
var left = resultSize - i
this.map { list ->
val j = left % list.size
left /= list.size
list[j]
}
}
}
karelpeeters
10/30/2019, 10:09 PMmap
but oh well.karelpeeters
10/30/2019, 10:11 PMRuckus
10/30/2019, 10:17 PMRuckus
10/30/2019, 10:17 PMkarelpeeters
10/30/2019, 10:18 PMresultSize - i
fixed it but I didn't actually check simple smilekarelpeeters
10/30/2019, 10:20 PM(index / axesSizeProduct[axis + 1]) % axes.get(axis).size()
Ruckus
10/30/2019, 10:20 PMkarelpeeters
10/30/2019, 10:23 PMthis.asReversed().map { ... }.asReversed()
and just var left = i
does fix it.karelpeeters
10/30/2019, 10:23 PMRuckus
10/30/2019, 10:27 PM