SICP問題3.29

論理和は否定と論理積を用いて

¬((¬A) ∧ (¬B))

で表せるので、回路図は

a1 ─[¬]┐c
         └─┐   e     output
             [∧]─[¬]─
         ┌─┘
a2 ─[¬]┘d

となる
よって or-gate の定義は以下のようになり

(define (or-gate a1 a2 output)
  (let ((c (make-wire))
        (d (make-wire))
        (e (make-wire)))
    (inverter a1 c)
    (inverter a2 d)
    (and-gate c d e)
    (inverter e output)
    'ok))

遅延は inverter-delay*2 + and-gate-delay*1 となる
(最初のinverter-delayは並行で流れるため)