SICP Exercise 3.33
Question
Using primitive multiplier, adder, and constant constraints, define a
procedure averager that takes three connectors a, b, and c as inputs and
establishes the constraint that the value of c is the average of the values of
a and b.
Answer
Here’s the constraint network for this scenario:

And the equations:
And finally the code:
(define (averager a b c)
(let ((u (make-connector))
(v (make-connector)))
(adder a b u)
(constant 2 v)
(multiplier c v u)
'ok))