In any programming language that implements short-circuit evaluation, the expression x and y is equivalent to the conditional expression if x then y else x, and the expression x or y is equivalent to if x then x else y. In either case, x is only evaluated once. The generalized definition above accommodates loosely typed languages that have more than the two truth-values True and False, where short