in reply to IF Statement Testing

In Perl6 (works with current Pugs):

if $expire ~~ none(1 .. 14) { ... }

Replies are listed 'Best First'.
Re^2: IF Statement Testing
by rg0now (Chaplain) on May 14, 2005 at 09:27 UTC
    But what I find more interesting is that the OP totally intuitively discovered junctions, and almost perfectly found the right syntax as well. Look at this variant:
    if ($expire !~ any(1|2|3|4|5|6|7|8|9|10|11|12|13|14)){...}

    Update: thanks gaal for lighting me up, although, I can not entirely grasp, what is the problem above...:-). Intuitively, $x ~~ none(...) should give the same result as $x !~ any(...), or at least, my intuition suggests this...

    Anyway, here is an updated syntax that even more resembles to the OP's idea, and it actually works right in Pugs:

    if (!($expire ~~ 1|2|3|4|5|6|7|8|9|10|11|12|13|14)) {...}
    Interestingly, Pugs requires parens around the if condition. Is this a bug?
      That unfortunately doesn't work, because there always exists an element in the junction so that $expire !~ it. The condition is always true.
        Unfortunately, English usage of negatives doesn't map well to current Perl 6 syntax. I have started a discussion on perl6-language about whether we should do "not raising" or disallow use of negative ops on junctions entirely.