
incval(++ElemSpec)

   Increments the contents of the visible non-logical variable or array element ElemSpec by one.

Arguments
   ElemSpec            Atom or ground compound term with non negative integer arguments.

Type
   Non-logical Variables, Arrays, Bags, Shelves and Stores

Description
   Increments the value of the element ElemSpec that must be of type
   integer.


   If ElemSpec is an atom, it must specify a non-logical variable visible from
   the context module.

   If ElemSpec is a compound term, it must specify a visible array element.
   all its arguments must be non negative integers smaller than the bounds
   specified with array/1/2 or variable/1.

   In a multithreaded setting, this operation can be considered atomic.


Modes and Determinism
   incval(++) is det

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

Exceptions
     4 --- ElemSpec is not instantiated.
     5 --- ElemSpec is a structure whose arguments are not all    integers.
     5 --- ElemSpec is neither an atom nor a ground structure.
     5 --- The value or type of ElemSpec is not integer.
     6 --- Array index in ElemSpec is out of range.
    41 --- ElemSpec does not designate an existing array or variable.

Examples
   
Success:
      [eclipse]: local(array(a(4), prolog)),
              setval(a(1), -2),
              incval(a(1)),
              getval(a(1), X).
      X = -1
      yes.

      [eclipse]: local(array(g(4), integer)),
              incval(g(1)),
              getval(g(1), X).
      X = 1
      yes.

      [eclipse]: setval(count, 0),
              repeat,
              writeln(hello),
              incval(count),
              getval(count, X),
              X >= 3, !.
      hello
      hello
      hello
      X = 3
      yes.

Error:

      incval(X).                            (Error 4).
      incval(a(2.0)).                       (Error 5).
      setval(a, 2.0), incval(a).            (Error 5).
      local(array(a(2), float)),
          incval(a(1)).                     (Error 5).
      local(array(a(10), integer)),
          incval(a(-2)).                    (Error 6).
      incval(no_array(0)).                  (Error 41).
      incval(no_var).                       (Error 41).





See Also
   decval / 1, array / 1, array / 2, variable / 1, getval / 2, setval / 2
