SICP Practice

Practice 3.29

(define (or-gate a1 a2 output)
  (let ((new-a1 (make-wire))
        (new-a2 (make-wire))
        (origin-output (make-wire)))
    (inverter a1 new-a1)
    (inverter a2 new-a2)
    (and-gate new-a1 new-a2 origin-output)
    (inverter origin-output output)))