Updating Inputs — first pass
We don’t have real sensors, so we simulate the input.
*cycle* is a variable that starts at 0 and is incremented on each cycle of the loop in COGNIZE.
The input will be controlled by having a list of what to input on each cycle. This will be a list of lists (cycle-number new-belief1 new-belief2 ...).
Perception will be assumed veridical — the inputs go directly into the set *new-beliefs*.
When no new inputs are left, we terminate cognition.
(proclaim '(special *inputs*))
(when (null *inputs*) (throw 'cognize nil))
(let ((input (assoc *cycle* inputs :test 'equal)))
(setf *inputs* (remove input *inputs* :test 'equal))
(princ "input: ") (princ P) (terpri)
(push P *new-beliefs*)))))