reject(): apply an odd-even driving rule
Medium
To cut traffic, a city runs an odd-even rule: on odd-numbered dates only cars with an odd registration number may drive, and on even-numbered dates only even ones.
Given the registration numbers of a company's pool cars and today's date of the month, return the cars that may drive today, in their original order.
Watch out
- A number ending in 0 counts as even.
reject()removes what matches the test, so the test has to name the cars that must stay off the road.
Inputs
ri!plates— List of Integer, the number part of each registrationri!date— Integer, the day of the month
ri! Rule Inputs
ri!platesList of Integer{
1234,
5677,
2020,
9
}ri!dateInteger12
Example 1 — An even date
Input: ri!plates
{
1234,
5677,
2020,
9
}Input: ri!date
12
Output:
{
1234,
2020
}Example 2 — An odd date
Input: ri!plates
{
1234,
5677,
2020,
9
}Input: ri!date
7
Output:
{
5677,
9
}Example 3 — A plate ending in 0 on an even date
Input: ri!plates
{
3050,
11
}Input: ri!date
30
Output:
{3050}Example 4 — Nobody may drive
Input: ri!plates
{
1,
3
}Input: ri!date
2
Output:
{}Example 5 — No cars
Input: ri!plates
{}Input: ri!date
5
Output:
{}Appian Expression Tips
- • Use
ri!variableNamefor rule inputs - • Use
a!localVariables(local!x: …, body)for locals - • Use
a!forEach(items: …, expression: fv!item)to iterate - • Use
where()/reject(fn!isnull, list)to filter