[ ECLiPSe Arrays and Global Variables built-in.|Group Index| Full Index]

decval(+ElemSpec)

Decrements the contents of the visible array element or global variable ElemSpec by one.

+ElemSpec
Atom or ground compound term whose arguments are non negative integers.

Description

Decrements by one the value of ElemSpec that must be of type integer.

If ElemSpec is an atom, it must specify a global variable visible from the caller module.

If ElemSpec is a compound term, it must specify an element visible array. All its arguments must be non negative integer smallers than the bound specified with make_array/1/2 or make_local_array/1/2.

Fail Conditions

None.

Resatisfiable

No.

Exceptions

(4) Instantiation fault
ElemSpec is not instantiated.
(5) Type error
ElemSpec is a structure whose arguments are not all integers.
(5) Type error
ElemSpec is neither an atom nor a ground structure.
(5) Type error
The value or type of ElemSpec is not integer.
(6) Range error
Array index in ElemSpec is out of bounds.
(41)
ElemSpec is of an array which does not exist.
(41)
global variable ElemSpec does not exist.

Examples


Success:
      [eclipse]: make_array(a(4), prolog),
              setval(a(0), -2),
              decval(a(0)),
              getval(a(0),X).
      X = -3
      yes.

      [eclipse]: make_array(g(4, 5), integer),
              decval(g(3, 2)),
              getval(g(3, 2), X).
      X = -1
      yes.

      [eclipse]: setval(a, 3),
              decval(a),
              getval(a, X).
      X = 2
      yes.

Error:
      decval(X).                          (Error 4).
      setval(a, 2.0),
          decval(a).                      (Error 5).
      make_array(a(2), real),
          decval(a(1)).                   (Error 5).
      make_array(a(2)),
          decval(a(2)).                   (Error 6).
      decval(no_var).                     (Error 41).
      decval(noarray(2, 4)).              (Error 41).


See Also

getval / 2, incval / 1, make_array / 1, make_array / 2, make_local_array / 1, make_local_array / 2, setval / 2