> I'd thought that that would confirm that both elements were Int:
  say do given all(3,7) { when Int { "both are Int" }; default {"not similar"} 
};
  ## not similar

I get a different result
 $ raku -e '  say do given all(3,7) { when Int { "both are Int" }; default 
{"not similar"} };'
both are Int

 $ raku -e '  say do given all(3,"x") { when Int { "both are Int" }; default 
{"not similar"} };'
not similar

$ raku -e '  say do given all(3,7) { when Int { $_ }; default {"not similar"} 
};'
all(3, 7)

$ raku -v
This is Rakudo version 2020.05.1 built on MoarVM version 2020.05
________________________________
From: Joseph Brenner <doom...@gmail.com>
Sent: Tuesday, November 2, 2021 11:45 AM
To: perl6-users <perl6-us...@perl.org>
Subject: junctions with given/when

CAUTION - EXTERNAL:


A given/when construct using a junction isn't quite doing what I'd expect.

I'd thought that that would confirm that both elements were Int:

  say do given all(3,7) { when Int { "both are Int" }; default {"not
similar"} };
  ## not similar

But this does what I thought it would:

  say so do all(3,7) ~~ Int;
    # True

And the given seems to put the junction in $_ as expected:

  given all(3,7) { say $_; say $_.WHAT; }
    # all(3, 7)
    # (Junction)

And you can use that junction in a smartmatch explicitly

  given all(3,7) { say so $_ ~~ Numeric; }
    # True
CAUTION - EXTERNAL EMAIL: This email originated outside the Judiciary. Exercise 
caution when opening attachments or clicking on links.

Reply via email to