Sorry for not finding the specific problem before.

>     while($not_prime && $!number++) {
>       $not_prime = @!primes.grep({$!number % $^a == 0});
>     }

The problem with Rakudo is that it is setting @!primes to a list
containing a single item (the latest value of $!number) on each turn
through the loop.

Saying $not_prime after the expression: 

>     while($not_prime && $!number++) {
>       $not_prime = @!primes.grep({$!number % $^a == 0});
>       say $not_prime;
>     }

shows $not_prime is being set to the current value of $!number. And of
course, since $not_prime is always true, the loop never exits.

What I don't understand it why it works on the first time through, but
never after that.

Oh, as an added bonus, adding the say causes a segfault.

Reply via email to