Keywords

Keywords are like procedures, but often exhibit a different evaluation order.

A

(and exp1 exp2 ... expn)— Evaluate each expression in turn until one of them returns false or we run out expressions. In the former case, returns false (#f). In the latter case, returns the value of expn.

C

(cond [guard0 exp0a exp0b ...] [guard1 exp1a exp1b ...] ... [else alt0 alt1 ... altn])— Evaluate each guard in turn until one holds (is not false). Then evaluate each of the corresponding expressions. Return the value of the last corresponding expression. If none of the guards holds, evaluate each of alt0 through altn, returning the value of altn.

I

(if guard consequent alternate)— Evaluate guard. If it holds (is not #f), evaluate consequent and return its value. If guard evaluates to #f, evavluate the alternate and return its value.

O

(or exp1 exp2 ... expn)— Evaluate each expression in turn until one of them returns a truish value (one that is not false). Return that value. If all of the expressions return false, returns false.