It is not "untrue". The sequence you produced goes nowhere. Thus the sink 
context.

Best regards,
Vadim Belman

> On Dec 30, 2022, at 11:08 AM, Sean McAfee <eef...@gmail.com> wrote:
> 
> Ah, got it, thanks.
> 
> It's mildly vexing, but the kind of side-effecty coding I described isn't a 
> great idea in general.  I only stumbled across the phenomenon while code 
> golfing.
> 
> As a side note, code like this:
> 
> sub f { 1 ... * ~~ /9/; $/ }
> 
> ...produces an untrue warning "Useless use of ... in sink context".  Not sure 
> if it's worth filing a bug report...
> 
> On Wed, Dec 28, 2022 at 12:49 PM Elizabeth Mattijsen <l...@dijkmat.nl 
> <mailto:l...@dijkmat.nl>> wrote:
>> That's because it at one time was decided that smart-match would set $/ in 
>> the caller's scope.  Which is a pain for implementation and optimizations.  
>> I would be very much in favour of getting rid of that "feature", fwiw.
>> 
>> > On 28 Dec 2022, at 18:45, Sean McAfee <eef...@gmail.com 
>> > <mailto:eef...@gmail.com>> wrote:
>> > 
>> > But if a sequence has its own $/, why does * ~~ /9/ set $/?
>> > 
>> > Actually it's not just sequences, as a little more experimentation showed:
>> > 
>> > [0] > first /9/, ^Inf
>> > 9
>> > [1] > $/
>> > Nil
>> > [2] > grep /9/, ^10
>> > (9)
>> > [3] > $/
>> > Nil
>> > 
>> > The * ~~ "trick" sets $/ in these cases too.
>> > 
>> > 
>> > On Wed, Dec 28, 2022 at 12:01 PM Elizabeth Mattijsen <l...@dijkmat.nl 
>> > <mailto:l...@dijkmat.nl>> wrote:
>> > This isn't specific to the REPL:
>> > 
>> > $ raku -e 'say 1 ... /9/; say $/'
>> > (1 2 3 4 5 6 7 8 9)
>> > Nil
>> > 
>> > I can only assume that the sequence has its own scope for $/, and thus 
>> > isn't visible outside of it.
>> > 
>> > 
>> > Liz
>> > 
>> > > On 28 Dec 2022, at 16:47, Sean McAfee <eef...@gmail.com 
>> > > <mailto:eef...@gmail.com>> wrote:
>> > > 
>> > > In a fresh 2022.12 Raku REPL, when the endpoint of a sequence is a 
>> > > Regex, the $/ variable seems not to be set:
>> > > 
>> > > [0] > 1 ... /9/
>> > > (1 2 3 4 5 6 7 8 9)
>> > > [1] > $/
>> > > Nil
>> > > 
>> > > If I match more explicitly using a WhateverCode, it works:
>> > > 
>> > > [2] > 1 ... * ~~ /9/
>> > > (1 2 3 4 5 6 7 8 9)
>> > > [3] > $/
>> > > 「9」
>> > > 
>> > > Is this the intended behavior, or a bug?
>> > > 
>> > 
>> 

Reply via email to