Код Ревью

Сравни свои решения

    #| BEGIN (Write your solution here) |#
(define (ripple-carry-adder A B S c)
  (define (loop A B S c-wire)
    (cond ((and (null? A) (null? B) (null? S))
           (set-signal! c-wire 0)
           'ok)
          ((or (null? A) (null? B) (null? S))
           (error "Wires lists are not same size -- RIPPLE-CARRY-ADDER"))
          (else
           (let ((next-c-wire (make-wire)))
             (full-adder (car A) (car B) next-c-wire (car S) c-wire)
             (loop (cdr A) (cdr B) (cdr S) next-c-wire)))))
  (loop A B S c))
#| END |#