%__________________________
% reglas para la suma
%--------------------------
limpiaDatos:-
dato(X), retract(dato(X)), fail.
limpiaDatos:-!.
inicio:-
limpiaDatos,
assert(dato(8)),
assert(dato(7)),
ciclo.
cabezadeX([X], X):-!.
comando([inserta]):-
write('Inserta datos: '),
readln(X),
cabezadeX(X, Q),
assert(dato(Q)).
comando([borra]):- dato(X), retract(dato(X)).
comando([salir]):- !, fail.
comando([muestra]):-
dato(Y), sformat(S, "~w", [Y]),
writeln(S), fail.
comando([muestra]):-!.
comando([A]):-
assert(contador(A)), !,
contador(B), sformat(S, "B = ~w", [B]), writeln(S),
limpia, writeln('limpia'),
A1 is B -1, writeln('A1 is B-1'),
assert(contador(A1)), sformat(S2, "A1 = ~w", [A1]), writeln(S2),
A1 = 0, write('A1 = 0'),
dato(X), write('dato(X)'),
sformat(S5, "El elemento [~w] = ~w", [A, X]), writeln(S5).
limpia:- contador(X), retract(contador(X)), fail.
limpia:-!.
ciclo:-
write('Comando: '),
readln(X), !,
sformat(S, "~w", [X]), writeln(S),
comando(X), ciclo.
ciclo:-!.
:-
dynamic dato, contador. %assert(contador(0)).