Chapter 3, Modularity, Objects, and State
Exercise 3.28
This is just replica of and-gate
:
1
2
3
4
5
6
7
8
9
10
(define (or-gate a1 a2 output)
(define (or-action-procedure)
(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-procedure)
(add-action! a2 or-action-procedure)
'ok)