
record(+Key, ?Value)

   Records the term Value after all other entries for key Key in the record database.

Arguments
   Key                 An atom, compound term, or handle.
   Value               An arbitrary term.

Type
   Recorded Database

Description
   Used to record an arbitrary term Value at the end of the record database
   entries associated with the key Key.  A synonym for recordz/2.  In the
   case of compound terms, all keys of the same name and arity are treated
   as equal.


   If backtracking occurs through the call of record/2 the associated Value
   is not removed from the record database.  Recording the same Value
   twice results in two identical entries in the record database.  All
   variables are recorded according to their internal representations.




Modes and Determinism
   record(+, ?) is det

Modules
   This predicate is sensitive to its module context (tool predicate, see @/2).

Exceptions
     4 --- Key is not instantiated.
     5 --- Key is neither an atom nor a compound term.

Examples
   
   Success:
    record(a(compound,term),value1).
    record([a,different,term],value2).

    [eclipse]: record(whiskey,jameson),
    >        record(whiskey,glenlivet),
    >        record(whiskey,bushmills).
    yes.
    [eclipse]: recorded(whiskey,Value).
    Value = jameson     More (;)
    Value = glenlivet     More (;)
    Value = bushmills     More (;)
    no (more) solution.
Error:
    record(Key, anything).             (Error 4)
    record("key",anything).            (Error 5)


See Also
   recorda / 2, recordz / 2, record_wait_append / 4
