计算机程序的构造和解释习题3.28
问题:请将或门定义为一个基本功能块,令构造函数为or-gate。
程序:
(define (or-gate in1 in2 out)
(define (or-action-procedure)
(let ((new-value (logic-or(get-signal in1)
(get-signal in2))))
(after-delay or-action-delay
(lambda()
(set-signal! out new-value)))))
(add-action! in1 or-action-procedure)
(add-action! in2 or-action-procedure)
'ok)
(define (or-action-procedure)
(let ((new-value (logic-or(get-signal in1)
(get-signal in2))))
(after-delay or-action-delay
(lambda()
(set-signal! out new-value)))))
(add-action! in1 or-action-procedure)
(add-action! in2 or-action-procedure)
'ok)