cond was the original way to test conditions in Lisp. It is still useful when multiple conditions are to be tested.
|(||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