The COND => construct The COND form has this syntax: (COND clause1 clause2 clause3) Each clause can take a couple possible forms. Previously we discussed two of these forms: clause = (test result) in which "test" is evaluated, and if true the result is evaluated and if false we go on to the next clause. We've also seen clause = (ELSE result) which is equivalent to just writing (#T result) but intended to be more readable. We today encounter a new form of cond clause, clause = (test => function) which evaluates the test, and if false moves on to the next clause, however if the test is true it evaluates function, and then applys the returned value to the result of evaluating test. Eg (cond (12 => (lambda (x) (+ x 1))) (else 'nope)) returns 13. similarly (cond ('(a b c) => cadr) (else 'nope)) returns B. There is actually yet another form of cond clause, very rarely used clause = (test) is the same as writing clause = (test => (lambda (x) x)) ie if the test is true the value of test is directly returned.