Код Ревью

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

    (require compatibility/mlist)

(define (set-cdr! x pair) (set-mcdr! x pair))
(define (car x) (mcar x))
(define (cdr x) (mcdr x))
(define (cadr x) (car (cdr x)))
(define (cons a b) (mcons a b))
(define list mlist)
(define (ripple-carry-adder a-in b-in s-in c-out)
  (let ((c-head (mlist c-out)))
    (define (iter a b s c)
      (cond ((null? a)
             'ok)
            (else
             (set-cdr! c (mlist (make-wire)))
             (full-adder (car a) (car b) (cadr c) (car s) (car c))
             (iter (cdr a) (cdr b) (cdr s) (cdr c)))))
    (iter a-in b-in s-in c-head)))