(defrule readin ?f<-(initial-fact) => (retract ?f) (assert (number (read))) ) (defrule writeout ?f<-(number ?n)(test (<> ?n 42)) => (retract ?f) (printout t ?n crlf) (assert (initial-fact)) ) (reset) (run) (exit) ; empty line at the end