user
Task

Test whether an integer is even or odd.

There is more than one way to solve this task:

* Use the even and odd predicates, if the language provides them.
* Check the least significant digit. With binary integers, *i bitwise-and 1* equals 0 iff *i* is even, or equals 1 iff *i* is odd.
* Divide *i* by 2. The remainder equals 0 iff *i* is even. The remainder equals +1 or -1 iff *i* is odd.
* Use modular congruences:
  + *i* ≡ 0 (mod 2) iff *i* is even.
  + *i* ≡ 1 (mod 2) iff *i* is odd.
assistant
(formerly Perl 6)
Raku doesn't have a built-in for this, but with subsets it's easy to define a predicate for it.

```
subset Even of Int where * %% 2;
subset Odd of Int where * % 2;

say 1 ~~ Even; # false
say 1 ~~ Odd;  # true
say 1.5 ~~ Odd # false ( 1.5 is not an Int )
```