Definición y uso de instancias en CLIPS

Creación: 

(make-instance [<instancia>] of <nombre clase><definicion slots>)
(make-instance alumno1 of hombre (nombre "juan") (edad 26))
(make-instance of hombre (nombre "luis") (edad 56))


Modificación: 

(modify-instance <instancia> <redefinicion slots>)
(modify-instance alumno1 (nombre "juan antonio"))

Copia: 

(duplicate-instance <instancia> [to <nueva instancia>]<redefinicion slots>)
(duplicate-instance alumno1 to alumno2 (nombre "pedro"))
(duplicate-instance alumno2 to alumno3)

Borrado: 

(make-instance <ref. instancia>)
(unmake-instance alumno1)
(unmake-instance ?referencia)


Otra opción: 

usar handler delete
((send [instancia]) delete)
(send [alumno1] delete)


Declaración instancias iniciales: 

(definstances)
Instancias a crear al inicio de la ejecución (comando (reset))
Siempre existe objeto initial-object (de clase INITIAL-OBJECT)
(definstances personas
(juan of hombre (nombre "juan")
(luis of hombre (nombre "luis")
(pablo of hombre (nombre "pablo"))


Definición de handlers:

(defmessage-handler <clase> <handler> (<parametros>) <lista instrucciones> )
Acceso a variables y ejecución de handlers (métodos)
([instancia] send <nombre handler> <paramatros>)
En slots donde se defina modificador create-accessor se crean dos handlers
get-<nombre slot>
set-<nombre slot>
([juan] send set-edad 26)
([pablo] send imprimir)
([juan] send get-nombre)