Сначала рассмотрим последний вопрос: да, это возможно, но для согласованности его, вероятно, назовут :end
, и нет, я не думаю, что он, вероятно, будет добавлен. Но тогда я могу ошибаться: -)
Я не уверен, как выглядит ваш пример игры в гольф, но если вы действительно работаете с массивом, почему бы не заполнить его сначала значениями, чтобы сделать его равномерно делимым на 4, а затем снова удалите их:
my @a = ^10;
@a.splice(0,0, Any xx @a % 4);
say @a.batch(4); # (((Any) (Any) 0 1) (2 3 4 5) (6 7 8 9))
Примечание. Я использовал более короткое значение ^10
(которое находится в диапазоне от 0
до 10
, исключая конечную точку). И я использовал более простой метод batch
, поскольку мы уверены, что частичных списков не будет. В любом случае, reverse
не требуется, просто проверка значений впоследствии.
Обратите внимание, метод reverse
в массиве относительно дешев, так как фактически не перемещает никакие значения.