[ Non-logical Variables, Arrays, Bags, Shelves and Stores | Reference Manual | Alphabetic Index ]

getval(++ElemSpec, -Value)

Retrieves the value of the visible array element or non-logical variable ElemSpec
Atom or ground compound term with non negative integer arguments.
Prolog term.


If ElemSpec is the name of a visible non-logical variable, it unifies the copied value of the variable with Value.

If ElemSpec is a compound term, it must specify an element of a visible non-logical array, all its arguments must be non negative integers smaller than the bounds specified with array/1/2 or variable/1. The copied value of the array element is unified with Value.

Deprecated functionality: If Element is the name of a reference, Value is unified with the actual term the reference refers to (no copying involved). Please use getref/2 for this purpose.

Modes and Determinism


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


(4) instantiation fault
ElemSpec is not ground.
(5) type error
ElemSpec is neither an atom nor a structure whose arguments are integers.
(6) out of range
An array index in ElemSpec is out of bounds
(41) array or global variable does not exist
ElemSpec does not designate an existing array or variable.


      local(array(a(4), float)),
          setval(a(2), 2.0),
          getval(a(2), 2.0).
      setval(i, "2"),
          getval(i, V)).   (gives V = "2").

          setval(a(1), 8.6),
          getval(a(1), 10.0).
      setval(i, 3),
          getval(i, 0)).

      getval(X, 1).                   (Error 4).
      getval(a(X), 1).                (Error 4).
      getval("a", V).                 (Error 5).
      getval(a(2.0), V).              (Error 5).
      getval(a(-1), V).               (Error 6).
      getval(no_array(0), X).         (Error 41).
      getval(no_var, X).              (Error 41).

See Also

decval / 1, incval / 1, array / 1, array / 2, variable / 1, setval / 2