sub добавляет ноль в конец в Raku

#raku

#raku

Вопрос:

 my sub e($r) { printf("%d, ", $_) for 1..$r}
say e(5);
 

возвращает 1, 2, 3, 4, 5, Nil , то есть, sub и / или say последовательно добавляет ноль в конец.

Я впервые попробовал это, используя версию rakudo 2020.02. Сейчас я попробовал использовать последнюю версию 2020.12.1, и этот ноль все еще существует. Как от этого избавиться?

Ответ №1:

Nil является возвращаемым значением sub e .

Вы либо хотите

 my sub e($r) { printf("%d, ", $_) for 1..$r}
e(5);
 

или

 my sub e($r) { map { sprintf("%d, ", $_) }, 1..$r }
.say for e(5);