[ Type Testing | Reference Manual | Alphabetic Index ]
acyclic_term(?Term)
Succeeds if Term is acyclic (finite)
- Term
- Arbitrary term
Description
Used to test whether Term is acyclic (a finite tree).
Fails if Term is cyclic (an infinite, rational tree).
Modes and Determinism
- acyclic_term(?) is semidet
Fail Conditions
Fails if Term is cyclic
Examples
?- X = f(f(a)), acyclic_term(X).
X = f(f(a))
Yes (0.00s cpu)
?- X = f(X), acyclic_term(X).
No (0.00s cpu)
% could be used to simulate occurs check
unify_with_occurs_check(X, X) :- acyclic_term(X).
See Also