cyclic_term/1
This commit is contained in:
@@ -1,13 +1,68 @@
|
||||
:- X = [], copy_term(X,Y), writeln('....'), writeln(X), writeln(Y).
|
||||
:- X = [_A], copy_term(X,Y), writeln('....'), writeln(X), writeln(Y).
|
||||
:- X = [a,_A], copy_term(X,Y), writeln('....'), writeln(X), writeln(Y).
|
||||
:- X = [X], copy_term(X,Y), writeln('....'), writeln(X), writeln(Y).
|
||||
:- X = [_|X], copy_term(X,Y), writeln('....'), writeln(X), writeln(Y).
|
||||
:- X= f(X), copy_term(X,Y), writeln('....'), writeln(X), writeln(Y).
|
||||
:- X= f(X,X), copy_term(X,Y), writeln('....'), writeln(X), writeln(Y).
|
||||
:- X= f(_,X), copy_term(X,Y), writeln('....'), writeln(X), writeln(Y).
|
||||
:- X= f(A,A,X), copy_term(X,Y), writeln('....'), writeln(X), writeln(Y).
|
||||
:- X= f(A,g(X,[A|A]),X), copy_term(X,Y), writeln('....'), writeln(X), writeln(Y).
|
||||
:- X= f(X,[X,X]), copy_term(X,Y), writeln('....'), writeln(X), writeln(Y).
|
||||
:- X= f(X,[X,g(X)]), copy_term(X,Y), writeln('....'), writeln(X), writeln(Y).
|
||||
:- X=f(_,X/[X]),copy_term(X,Y), writeln('....'),writeln(X),writeln(Y).
|
||||
%, copy_term(X,Y), writeln('....'), writeln(X), writeln(Y).
|
||||
|
||||
:- initialization(main).
|
||||
|
||||
main :-
|
||||
main( cyclic_term(X), X).
|
||||
main :-
|
||||
writeln('-----------------------'),
|
||||
fail.
|
||||
main :-
|
||||
main( ground(X), X).
|
||||
main :-
|
||||
writeln('-----------------------'),
|
||||
fail.
|
||||
main :-
|
||||
main( writeln(X), X).
|
||||
main.
|
||||
|
||||
main(G, X) :-
|
||||
d(X),
|
||||
m(G).
|
||||
|
||||
m( G ) :-
|
||||
G,
|
||||
!,
|
||||
writeln(yes),
|
||||
end.
|
||||
m( G ) :-
|
||||
writeln(no),
|
||||
end.
|
||||
|
||||
d(X) :- X = [_A].
|
||||
d(X) :- X = [a,_A].
|
||||
d(X) :- X = [X].
|
||||
d(X) :- X = [_|X].
|
||||
d(X) :- X = [_,X].
|
||||
d(X) :- X = [_,x].
|
||||
d(X) :- X = [_,x(X)].
|
||||
d(X) :- X= f(X).
|
||||
d(X) :- X= f(X,X).
|
||||
d(X) :- X= f(_,X).
|
||||
d(X) :- X= f(A,A,X).
|
||||
d(X) :- X= f(A,A,g(A)).
|
||||
d(X) :- X= f(A,g(X,[A|A]),X).
|
||||
d(X) :- X= f(X,[X,X]).
|
||||
d(X) :- X= f(X,[X,g(X)]).
|
||||
d(X) :- X= f(_,X/[X]).
|
||||
d(X) :- X= f(_,A/[A]), A= f(X,[X,g(X)]).
|
||||
|
||||
end :- writeln('....'), fail.
|
||||
|
||||
a(no, no).
|
||||
a(no, no).
|
||||
a(yes, yes).
|
||||
a(yes, no).
|
||||
a(yes, no).
|
||||
a( no, no).
|
||||
a(yes, no).
|
||||
a(yes, yes).
|
||||
a(yes, yes).
|
||||
a(yes, no).
|
||||
a(yes, no).
|
||||
a( no, no).
|
||||
a(yes, no).
|
||||
a(yes, yes).
|
||||
a(yes, yes).
|
||||
a(yes, no).
|
||||
a(yes, no).
|
||||
|
Reference in New Issue
Block a user