I'm barely hanging on with the "$" so ... so from:
raku -e 'for <AA NN> -> $alpha { for (1..14) { print (state $ = $alpha)++ ~ "
" } }'
AA AB AC AD AE AF
I tried an actual, er, non-anon var
# raku -e 'for <AA NN> -> $alpha { for (1..14) { print (state $sv = $alpha)++
~ " " } }'
AA AB AC AD AE AF ...
and then I tried
raku -e 'for <AA NN> -> $alpha { for (1..14) { (state $sv = $alpha)++;
printf("d: %s\n", $sv ) } }'
d: AB
d: AC
d: AD
d: AE
d: AF
...
but back to "$"
raku -e 'for <AA NN> -> $alpha { for (1..14) { (state $ = $alpha)++;
printf("d: %s\n", $ ) } }'
Use of uninitialized value of type Any in string context.
Methods .^name, .raku, .gist, or .say can be used to stringify it to something
meaningful.
in block at -e line 1
Use of uninitialized value of type Any in string context.
Methods .^name, .raku, .gist, or .say can be used to stringify it to something
meaningful.
in any join at gen/moar/stage2/NQPCORE.setting line 1075
d:
[27 more times]
I used printf hoping the %s context would stringify "$" as trying any of the
suggested "methods" complain of a missing "self"
raku -e 'for <AA NN> -> $alpha { for (1..14) { (state $ = $alpha)++;
printf("d: %s\n", $.raku ) } }'
===SORRY!=== Error while compiling -e
Variable $.raku used where no 'self' is available
at -e:1
------> v = $alpha)++; printf("d: %s\n", $.raku⏏ ) } }
expecting any of:
term
So I'm missing something about "$", I think
________________________________
From: William Michels via perl6-users <[email protected]>
Sent: Tuesday, September 1, 2020 3:17 PM
To: yary <[email protected]>
Cc: perl6-users <[email protected]>
Subject: Re: print particular lines question
I tried combining Larry's code and Yary's code, variously using
"state" or "INIT" or "BEGIN". This is what I saw:
~$ raku -e 'for <AA NN> -> $alpha { for (1..14) { print (state $ =
$alpha)++ ~ " " } }'
AA AB AC AD AE AF AG AH AI AJ AK AL AM AN NN NO NP NQ NR NS NT NU NV
NW NX NY NZ OA
~$ raku -e 'for <AA NN> -> $alpha { for (1..14) { print (INIT $ =
$alpha)++ ~ " " } }'
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
~$ raku -e 'for <AA NN> -> $alpha { for (1..14) { print (BEGIN $ =
$alpha)++ ~ " " } }'
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
Expected? --Bill.
On Tue, Sep 1, 2020 at 11:44 AM yary <[email protected]> wrote:
>
>
> Thanks, that's cool, and shows me something I was wondering about
>
> On Tue, Sep 1, 2020 at 11:36 AM Larry Wall <[email protected]> wrote:
>>
>> If you want to re-initialize a state variable, it's probably better to make
>> it explicit with the state declarator:
>>
>> $ raku -e "for <a b> { for (1..2) { say (state $ = 'AAA')++ } }"
>> AAA
>> AAB
>> AAA
>> AAB
>
>
> $ raku -e 'for <AA OO> -> $alpha { for (1..3) { say (state $ = $alpha)++ } }'
> AA
> AB
> AC
> OO
> OP
> OQ
>