cond was the original way to test conditions in Lisp. It is still useful when multiple conditions are to be tested.
(cond | ( | test_1 | ... | result_1 ) |
( | test_2 | ... | result_2 ) | |
... | ||||
( | else | ... | result_n ) ) |
When cond is evaluated, test_1 is evaluated first; if its value is true (anything other than #f), then the remainder of the first clause through result_1 is evaluated, and the value of result_1 is the value of the cond. Otherwise, test_2 is evaluated, and so on. The keyword else may be used as the test of the last clause; its value is always taken as true. Other dialects of Lisp use t instead of else. If no test is true, the value of the cond is undefined.
(define (abs x) (cond ((< x 0) (- x)) (else x)))
It is good practice for the last test in a cond to be else to guarantee that all cases are covered.
Contents    Page-10    Prev    Next    Page+10    Index