Animales.lsp



; Base de datos inicial
(setq Animales (list 'perro 'gato))
(setq Atributos (list (list 'peludo 'ladra) (list 'ojos_color 'bigoton)))


(defun inicio()
  (setq ciclo t)
  (loop
     (if (eql ciclo nil) (return 0))
     	(print "Que animal te interesa?: ")
     	(setq Animal (read))
	(if (eql Animal 'fin) (setq ciclo nil) )
	(if (and (eql (Busca Animal) nil) (eql t ciclo)) (Anexa Animal) )
	(if (and (eql (Busca Animal) t)   (eql t ciclo)) (Muestra Animal) )
  )
)

(defun Anexa (A)
	(print 'anexa)
)
(defun Busca (A)
	(setq ok t)
	(setq ok (member A Animales))
	(if (eql ok nil) nil t )
)

(defun Muestra (Elem)
	(setq cicloLoop t)
	(setq ListaAnim  Animales)
	(setq ListaAtrib Atributos)
	(loop
		(if (eql cicloLoop nil) (return 0))
		(setq Head (car ListaAnim))
		(if (equal Head Elem) (MuestraAtrib ListaAtrib))
		(if (equal Head Elem) (setq cicloLoop nil))
		(setq ListaAnim  (cdr ListaAnim))
		(setq ListaAtrib (cdr ListaAtrib))
	)
)

(defun MuestraAtrib (Lista)
	(print (car Lista))
	(print 'MuestraATrib)
)

(defun CreaLista (Dato)
  (list Dato)
)

(defun unir (Lista1 Lista2)
	(append Lista1 Lista2)
)