> On 30 Apr 2018, at 15:12, ToddAndMargo <toddandma...@zoho.com> wrote:
> 
> 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.)

A subset creates a new Type (like Int) from a base type (such as Int) and 
narrows down the condition that is acceptable for it.

    https://docs.perl6.org/language/typesystem#index-entry-subset-subset

Reply via email to