limpiaDatos:-
animal(X), retract(animal(X)), fail.
limpiaDatos:-!.
lista_todos:-
animal(X),
write(X), nl, fail.
lista_todos.
inserta(X):-
not(animal(X)),
assert(animal(X)),
lista_todos.
inserta(_):-!.
ciclo:-
write('Animal: '),
readln(X), !, inserta(X), ciclo.
ciclo:-!.
inicio:-
assert(animal(c)).
:-
dynamic animal.