SICP 読み (115) 3.3.4 ディジタル回路のシミュレータ
3.3.4 節をだらだら読んでて、解らしきものを思いついたので控えを。
入力を in1、in2 として出力が o
(define (or-gate-2 in1 in2 o) (let ((a (make-wire)) (b (make-wire)) (c (make-wire))) (inverter in1 a) (inverter in2 b) (and-gate a b c) (inverter c o) 'ok))
ってカンジで OK かなぁ。入力側をどっちも反転させといて and した後に再度反転。なんつーかある意味一般常識なソレが無くってスミマセン。でもちょっと嬉しかった。
あるいは 3.28 は以下ッスか?? (てきとー
(define (or-gate a1 a2 output) (define (or-action-proc) (let ((new-value (logical-or (get-signal a1) (get-signal a2)))) (after-delay or-gate-delay (lambda () (set-signal! output new-value))))) (add-action! a1 or-action-proc) (add-action! a2 or-action-proc) 'ok)
現時点で試験ができない状態なんでヤリたい放題かも。(を