and(expr, ...)
Return false if one of expr, ...s evaluates to false,
otherwise return the value of the last expression or true.
If no arguments are present, return true.
Note that and is implemented as a macro. So it will evaluate its arguments
only if that is required to get the final result.
let (x = 3) and(x > 2, x < 4)
// true
let (x = 5) and(x > 2, x < 4)
// false
and(false, 1, 2, 3)
// false
and(1, 2, 3)
// 3