(expand$ $?a) (deffunction boggle ($?a) (return $?a)) (boggle 1 2 3) (progn $?a) (while $?a do) (if $?a then 1) (eval "$?*x*") (defrule foo ?f<-(foo $?b) => (retract ?f) (printout t ?b crlf) (printout t $?b crlf)) (assert (foo a b c)) (run) (undeffunction boggle) (undefrule foo) (+ $?*x*) (deffunction bar ($?a) (foo $?a)) (bar 1 2) (bar 1 2 3) (> (expand$ (create$ 3))) (> (expand$ (create$ 4 3))) (> (expand$ (create$ 4)) (expand$ (create$ 3))) (> (expand$ (create$ 3)) (expand$ (create$)))