[ Recorded Database | The ECLiPSe Built-In Predicates | Reference Manual | Alphabetic Index ]
recorded_list(+Key, ?List)
Succeeds if the List is the list of all terms that are currently recorded
in the indexed database under the key Key.
- +Key
- An atom or a compound term.
- ?List
- A (possibly empty) list of Prolog terms.
Description
Unifies List with a list of all the terms that are currently recorded
under the key Key. While recorded/2 returns the terms one by one on
backtracking, recorded_list/2 gives them all at once. The order of the
list corresponds to the order in which the terms would be delivered by
recorded/2. recorded_list/2 could be defined as
recorded_list(Key, List) :-
findall(Term, recorded(Key, Term), List).
In the case of compound terms, all keys of the same name and arity are
treated as equal.
Fail Conditions
Fails List does not unify with the list of recorded terms.
Resatisfiable
No.
Exceptions
- (4) instantiation fault
- Key is not instantiated.
- (5) type error
- Key is neither an atom nor a compound term.
- (5) type error
- List is neither an variable nor a list.
Examples
Success:
[eclipse]: erase_all(beer), recorded_list(beer,List).
List = []
yes.
[eclipse]: record(beer,paulaner), record(beer,lowenbrau),
recorda(beer,spaten), recorded_list(beer,List).
List = [spaten, paulaner, lowenbrau]
yes.
Fail:
erase_all(beer), recorded_list(beer,[paulaner]).
Error:
recorded_list(Beer,Value). (Error 4)
recorded_list(1,Value). (Error 5)
recorded_list(beer,lowenbrau). (Error 5)
See Also
record / 2, recorded / 2