> 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