Blob


1 (defun ripple-carry-adder (la lb ls c)
2 (let ((n (length la)))
3 (unless (= n (length lb) (length ls))
4 (error "Expecting all lists of same length"))
5 (labels ((ripple-build (la lb lcin ls lcout)
6 (unless (null la)
7 (full-adder (car la) (car lb) (car lcin)
8 (car ls) (car lcout))
9 (ripple-build (cdr la) (cdr lb) (cdr lcin)
10 (cdr ls) (cdr lcout)))))