On 04/30/2018 05:44 AM, Elizabeth Mattijsen wrote:

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


I don't get it.  Why would I want to do this?   I only want to know if
an integer is odd or even.  What am I missing?

For example, I just coded this:

    sub odd( $Num ) { return $Num % 2; }

    for split( "\n", $ClipStr ).kv -> $LineNum, $Line {
        if odd $LineNum
               { $PartsStr ~= '<font color="#006600">'; }  # Green
         else  { $PartsStr ~= '<font color="#663366">'; }  # Purple
    ...
    }

It allows me to alternate the color for odd and even lines.

Please remember that I have about 1/100 of your skill when you
explain things to me.  (For instance, I have no clue what
`subset` is or how to use it.)

-T

Reply via email to