47 lines
623 B
Plaintext
47 lines
623 B
Plaintext
|
|
||
|
:- object(varlist,
|
||
|
extends(list)).
|
||
|
|
||
|
|
||
|
:- info([
|
||
|
version is 1.0,
|
||
|
authors is 'Paulo Moura',
|
||
|
date is 2000/7/24,
|
||
|
comment is 'List of variables predicates.']).
|
||
|
|
||
|
|
||
|
member(Element, [Head| _]) :-
|
||
|
Element == Head.
|
||
|
|
||
|
member(Element, [_| Tail]) :-
|
||
|
member(Element, Tail).
|
||
|
|
||
|
|
||
|
memberchk(Element, [Head| Tail]) :-
|
||
|
Element == Head ->
|
||
|
true
|
||
|
;
|
||
|
memberchk(Element, Tail).
|
||
|
|
||
|
|
||
|
prefix([], _).
|
||
|
|
||
|
prefix([Head1| Tail1], [Head2| Tail2]) :-
|
||
|
Head1 == Head2,
|
||
|
prefix(Tail1, Tail2).
|
||
|
|
||
|
|
||
|
valid(List) :-
|
||
|
nonvar(List),
|
||
|
\+ \+ valid2(List).
|
||
|
|
||
|
|
||
|
valid2([]).
|
||
|
|
||
|
valid2([Head| Tail]) :-
|
||
|
var(Head),
|
||
|
valid2(Tail).
|
||
|
|
||
|
|
||
|
:- end_object.
|