Blob


1 (defun expand-cond-clauses (clauses)
2 (if (null clauses)
3 'false
4 (let ((first (car clauses))
5 (rest (cdr clauses)))
6 (cond
7 ((cond-else-clause? first)
8 (if (null rest)
9 (sequence->exp (cond-actions first))
10 (error "ELSE clause isn't last " clauses)))
11 ((extended-cond-syntax? first)
12 (make-if
13 (extended-cond-test first)
14 (list
15 (extended-cond-recipient first)
16 (extended-cond-test first))
17 (expand-cond-clauses rest)))
18 (t
19 (make-if
20 (cond-predicate first)
21 (sequence->exp (cond-actions first))
22 (expand-cond-clauses rest)))))))