Computers can perform more than just mathematical tasks - they are also virtuosos in classical logic. Much as how arithmetic involves manipulating number with addition, multiplication and such, logic involves manipulating the values `true` and `false` using its own operators. Those are not text string - they are values as fundamental as the natural numbers. In computer science, they are both called Booleans, after the 19th century mathematician George Boole.

`is` is a logical operator. Just as + adds the two numbers on each side of it, `is` compares two values on each side and evaluates to `true` or `false` depending on whether they're identical. It works equally well with strings, numbers, Array, and anything else, but beware - the string `"2"` is not equal to the number 2.

There are several other logical operators available.

Operator Purpose Example
`is` Evaluates to `true` if both sides are equal, otherwise `false`. `\$bullets is 5`
`is not` Evaluates to `true` if both sides are not equal. `\$friends is not \$enemies`
`contains` Evaluates to `true` if the left side contains the right side. `"Fear" contains "ear"`
`is in` Evaluates to `true` if the right side contains the left side. `"ugh" is in "Through"`
`>` Evaluates to `true` if the left side is greater than the right side. `\$money > 3.75`
`>=` Evaluates to `true` if the left side is greater than or equal to the right side. `\$apples >= \$carrots + 5`
`<` Evaluates to `true` if the left side is less than the right side. `\$shoes < \$people * 2`
`<=` Evaluates to `true` if the left side is less than or equal to the right side. `65 <= \$age`
`and` Evaluates to `true` if both sides evaluates to `true`. `\$hasFriends and \$hasFamily`
`or` Evaluates to `true` if either side is `true`. `\$fruit or \$vegetable`
`not` Flips a `true` value to a `false` value, and vice versa. `not \$stabbed`

Conditions can quickly become complicated. The best way to keep things straight is to use parentheses to group things.