% use the directive 'dynamic' to declare a predicate that can be % modified during later program execution
:- dynamic(aa/1).
main(_) :- list_aa, nl, remove_first, list_aa, nl, add_top, list_aa, nl, add_bottom, list_aa.
list_aa :- aa(X), writeq(aa(X)),nl, flush_output, fail ; true.
remove_first :- retract(aa(_)).
add_top :- asserta(aa(300)).
add_bottom :- assertz(aa(xyz)).
aa(1). aa(2). aa(3).
| –`“ª‚Ö |
|