The simplest Prolog Quine, that can reproduces its own clause, reads as follows:
quine((quine(X) :- Y)) :-
clause(quine(X), Y).
?- quine(Z).
Z = (quine((quine(_22008):-_22004)):-clause(quine(_22008), _22004)).
Is there another Prolog Quine that doesn't use clause/2,
write/1, ..., i.e. dynamic database or input/output?
Can we write a Prolog program that searches such a Quine?