> On 30 Apr 2018, at 12:43, ToddAndMargo <toddandma...@zoho.com> wrote:
> 
> 
>> Am 30.04.2018 um 08:47 schrieb ToddAndMargo:
>>> Hi All,
>>> 
>>> I know it would only take me 25 seconds to write one,
>>> but do we have an odd and even function build in?
>>> 
>>> 
>>> Many thanks,
>>> -T
>>> 
>>> $ perl6 -e 'my $x=3; say $x.odd;'
>>> No such method 'odd' for invocant of type 'Int'. Did you mean 'ord'?
>>>   in block <unit> at -e line 1
>>> 
>>> $ perl6 -e 'my $x=3; say $x.even;'
>>> No such method 'even' for invocant of type 'Int'
>>>   in block <unit> at -e line 1
> 
> On 04/30/2018 02:05 AM, Martin Barth wrote:
> > Are you aware of the %% operator?
> >
> > $var %% 2 checks wether it is dividable by 2.
> >
> >
> 
> No I was not.  Thank you!
> 
> I was just going to do a
> 
>     sub  odd( $Num ) { return $Num % 2; }
>     sub even( $Num ) { return not $Num.odd; }

If you create this sub to do value checking, then maybe this approach is better 
for you:

    subset EvenInt of Int where * %% 2;  # all the even Ints
    subset OddInt of Int where * !%% 2;  # all the odd Ints

    # works
    my EvenInt $x = 42;

    # dies with: Type check failed in assignment to $y; expected EvenInt but 
got Int (42)
    my OddInt  $y = 42;




Liz

Reply via email to