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.