On Mon, 07 Aug 2017 15:34:26 -0700, c...@zoffix.com wrote:
> Originally taken from:
> https://stackoverflow.com/questions/45527881/why-does-and-affect-perl-
> 6-junctions-differently
> 
> For example, there's a difference between output of using `+` and
> using `~` with a Junction. With `+` you get a junction back, while `~`
> slurps and just .Strs (which .perls) the Junction:
> 
> <Zoffix__> put any( 1, 3, 7 ) + 1;
> <Zoffix__> m: put any( 1, 3, 7 ) + 1;
> <camelia> rakudo-moar a91ad2: OUTPUT: «any(2, 4, 8)␤»
> <Zoffix__> m: put any( <h H> ) ~ 'amadryas';
> <camelia> rakudo-moar a91ad2: OUTPUT: «any("h", "H")amadryas␤»
> 
> The reason is the `~` has a slurpy candidate, while `+` doesn't:
> 
> Junction as just an arg:
>      <Zoffix__> m: sub foo (+@a) { @a.join: '|' }; say foo <h H>.any,
> 'amadryas'
>     <camelia> rakudo-moar a91ad2: OUTPUT: «any("h", "H")|amadryas␤»
>      <Zoffix__> m: sub foo (*@a) { @a.join: '|' }; say foo <h H>.any,
> 'amadryas'
>     <camelia> rakudo-moar a91ad2: OUTPUT: «any("h", "H")|amadryas␤»
> 
> Junctioned call:
>      <Zoffix__> m: sub foo ($a, $b) { ($a, $b).join: '|' }; say foo <h
> H>.any, 'amadryas'
>     <camelia> rakudo-moar a91ad2: OUTPUT: «any(h|amadryas,
> H|amadryas)␤»
> 
> There are two question:
>     1) Is it possible to make slurpies junct, same as non-Mu scalar
> candidates?
>     2) If not, what do we do to make interface consistent; so that all
> the ops do the same thing?


Hello, Past Zoffix. How do you imagine slurpies would junct even? Scanning all 
elements (including nested ones) for Junctions?

Rejecting this as I don't see anything sane coming out from it.

The `~` was made to behave the same as `+` now; though the overall goalpost was 
moved and there's now a problem with output routines: 
https://rt.perl.org/Ticket/Display.html?id=132549#ticket-history

Reply via email to