(deftype percept forward) (deftype percept (structure pos-x - float pos-y - float phi-deg - float)) (!= pp (make percept 1.0 2.0 45.0)) NISP(4): pp NISP(5): (describe pp) (!_(percept pos-x) pp) (!_ pos-x pp) (specdecl (pp (make percept 0.0 1.0 90.0)) - percept) pp (!_ pos-x pp) (specdecl pp - percept) (specdecl ppp - percept) (specdecl pp - (~ percept)) (!= (!_(percept pos-x) pp) (+ *-* 5.0)) pp !>pp>pos-x !>pp>pos-x (deftype percept (structure pos-x - float pos-y - float phi-deg - float (HANDLER (PRINT (PC - percept STR - stream) (OUT (TO STR) "[:-] <" (!_POS-X PC) "," (!_POS-Y PC) ">]"))))) (deftype percept (structure pos-x - float pos-y - float phi-deg - float (HANDLER (PRINT (PC - percept STR - stream) (OUT (TO STR) "[:-] <" (!_POS-X PC) "," (!_POS-Y PC) ">]")))) (CONSER () (MAKE ^^ 1.0 2.0 3.0))) (deftype percept (structure pos-x - float pos-y - float phi-deg - float (HANDLER (PRINT (PC - percept STR - stream) (OUT (TO STR) "[:-] <" (!_POS-X PC) "," (!_POS-Y PC) ">]")))) (CONSER () (MAKE ^^ 1.0 2.0 3.0)) (SET POS-X (PC - percept VAL - obj) (EARROR POS-X-SETTER NIL "Can't set the POS-X of an percept!!!"))) (DEFFUNC WHERE-IS-MY-ROBOT? - symbol (PP - percept) (COND ((AND (> !>pp>pos-x 0) (> !>pp>pos-y 0)) 'NORTH-WEST) ((> !>pp>pos-x 0) 'SOUTH-WEST) ((> !>pp>pos-y 0) 'NORTH-EAST) (T 'SOUTH-EAST)))