view cp.pl @ 4:f864bb4ba9a4 default tip

update tags
author convert-repo
date Fri, 07 Nov 2008 20:36:52 +0000
parents 92791d7fbf21
children
line wrap: on
line source

compile0(F) :-
    prolog_flag(single_var_warnings,_),!,
    prolog_flag(single_var_warnings,X,off),
    prolog_flag(discontiguous_warnings,Y,off),
    compile(F),
    prolog_flag(single_var_warnings,_,X),
    prolog_flag(discontiguous_warnings,_,Y).
compile0(F) :-
    style_check(-singleton),!,
    style_check(-discontiguous),!,
    compile(F),
    style_check(+discontiguous),
    style_check(+singleton).
compile0(F) :-
    compile(F).




% copy(X,Y) :- copy_term(X,Y). % for sicstus prolog

copy(X, Y) :- copy(X, Y, var, _).
copy(X, Y, Vlist0, Vlist1) :- nonvar(X),
    functor(X, F, A), functor(Y, F, A), !,
    copy(A, X, Y, Vlist0, Vlist1).
copy(X, Y, Vlist0, Vlist0) :- map(Vlist0, X, Y), !.
copy(X, Y, Vlist0, var(X, Y, Vlist0)).
copy(0, _, _, Vlist0, Vlist0) :- !.
copy(N, X, Y, Vlist0, Vlist2) :-
    arg(N, X, Xn), copy(Xn, Yn, Vlist0, Vlist1), arg(N, Y, Yn),
    M is N-1, !, copy(M, X, Y, Vlist1, Vlist2).
map(var(X, Y, _), Var, Y) :- X==Var, !.
map(var(_,_,Rest), Var, Y) :- map(Rest, Var, Y).







r_abolish(A,B) :- functor(C,A,B),retractall(C).




put([C]) :- !, char_code(Char,C),put_char(Char).
put(C) :- char_code(Char,C),put_char(Char).

ttyflush :- flush_output.

nofileerrors :- prolog_flag(fileerrors,off,_).
fileerrors :- prolog_flag(fileerrors,on,_).

tab(0) :-!.
tab(N) :- N>0, N1 is N-1,write(' '),tab(N1).