def foo(thisSet: BitSet, thatSet: BitSet): BitSet = {
var ts = thisSet
while (!ts.isEmpty && ts.max >= thatSet.max) {
ts = ts ^ thatSet.map(_ - thatSet.max + ts.max)
}
ts
}
Я имею в виду не рекурсию (ну, с хвостовой оптимизацией можно, на крайняк), а flod/map/etc.
Если что - это я так в полиномиальном базисе собираюсь производить редукцию многочлена. Если есть менее костыльные способы, прошу их в студию. Про ОНБ знаю, это не считается.