Code Review
Compare your solutions
(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)))