Next: while do, Previous: Conditionals, Up: Control Mechanisms [Contents][Index]

`and`

and `or`

evaluate all their arguments in order, similar
to `begin`

, but evaluation stops as soon as one of the expressions
evaluates to false or true, respectively.

- syntax:
**and***expr …* Evaluate the

`expr`s from left to right and stop evaluation as soon as one expression evaluates to`#f`

; the remaining expressions are not evaluated. The value of the last evaluated expression is returned. If no expression evaluates to`#f`

, the value of the last expression is returned.If used without expressions,

`#t`

is returned.

- syntax:
**or***expr …* Evaluate the

`expr`s from left to right and stop evaluation as soon as one expression evaluates to a true value (that is, a value different from`#f`

); the remaining expressions are not evaluated. The value of the last evaluated expression is returned. If all expressions evaluate to`#f`

,`#f`

is returned.If used without expressions,

`#f`

is returned.