Cyclic terms handling
Author(s): Daniel Cabeza, Remy Haemmerle.
This module implements predicates related to cyclic terms. Cyclic (or infinite) terms are produced when unifying a variable with a term which contains that variable.
Usage and interface
- Library usage:
:- use_module(library(cyclic_terms)). - Exports:
- Predicates:
acyclic_term/1, uncycle_term/2, recycle_term/2, cyclic_term/1, cyclic_term/1, cyclic_term/1.
- Predicates:
- Imports:
- System library modules:
lists. - Packages:
prelude, nonpure, assertions.
- System library modules:
Documentation on exports
PREDICATE
Usage:uncycle_term(T,U)
Given a term T, U is a finite representation of T as an acyclic term. This representation can be converted back to T using recycle_term/2.
PREDICATE
Usage:recycle_term(U,T)
Given U, a finite representation of a term as an acyclic term as uncycle_term/2 produces, T is the represented term. U is modified by the predicate, thus to maintain it untouched copy_term/2 should be used.