> 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.