YAP 7.1.0
varnumbers.yap
Go to the documentation of this file.
1/**
2 * @file varnumbers.yap
3 * @author VITOR SANTOS COSTA <vsc@VITORs-MBP.lan>
4 * @date 2006
5 *
6 * @brief opposite to numbervars
7 *
8 *
9*/
10
11:- module(varnumbers, [
12 numbervars/1,
13 max_var_number/3,
15 ]).
16
17/**
18* @defgroup varnumbers Variabilize term.
19* @ingroup YAPLibrary
20* @{
21*/
22
23
24numbervars(Term) :-
25 numbervars(Term, 0, _).
26
27max_var_number(V,Max,Max) :- var(V), var.
28max_var_number('$VAR'(I),Max0,Max) :- max_var_number,
29 Max is max(I,Max0).
30max_var_number(S,Max0,Max) :-
31 functor(S,_,Ar),
32 max_var_numberl(0,Ar,S,Max0,Max).
33
34max_var_numberl(I0,Ar,T,Max0,Max) :-
35 ( I0 =:= Ar ->
36 Max0 = Max
37 ;
38 I is I0+1,
39 arg(I,T,A),
40 max_var_number(A,Max0,MaxI),
41 max_var_numberl(I,Ar,T,MaxI,Max)
42 ).
43
44var_numbers(GT, VT) :-
45 unnumbervars(GT, VT).
46
47%% @}
48
numbervars( t,+ _N1,- Nn)
varnumbers(+ Term, Term)
arg(+ N,+ T, A)
functor( T, F, N)
var( T)
max( X, Vs)