
make_array(++Array, +Type)

   Creates the global array or global variable Array of type Type.



Arguments
   Array               Atom or ground compound term with integer arguments.
   Type                Atom, one of float, integer, byte, prolog, global_reference.

Type
   Obsolete

Description
   If Array is an atom, a global variable only visible from the context
   module is created.  The only type allowed for a global variable is
   prolog or global_reference.  However a typed gobal variable can be
   create with make_local_array(a(1), Type) (accessed a a(0)).


   If Array is a compound term, a local array of type Type is created, its
   dimension is the arity of the term Array and the size of each dimension
   is specified by the corresponding argument of the term Array.  The sizes
   must be greater than 0, Type must not be global_reference.


   The elements of Prolog arrays are initialised depending on the type:
   float, integer, byte and global_reference arrays are initialised with 0
   values, prolog arrays are initialised with free variables.


   The valid elements indexes in the array range from 0 to the dimension
   minus one.  For example myarray created with make_array(myarray(3,4,5),
   integer) contains 60 integers that may be accessed from myarray(0,0,0)
   to myarray(2,3,4).


   Typed array use less space that untyped (i.e.  prolog) ones.


   Global references access the original term with is variables, other
   array types store a copy of the term.




Modes and Determinism
   make_array(++, +) is det

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

Exceptions
     4 --- Either or both of the arguments are not ground.
     5 --- Array is not an atom or a compound term with integer    arguments.
     5 --- Type is not an atom.
     6 --- The ground compound term Array has arguments that are    integers not greater than 0.
     6 --- Type is not an atom in the above set.
    42 --- An array with the same name and dimension as Array already    exists.

Examples
   
Success:
      make_array(a, prolog).
      make_array(a(1), integer).
      make_array(a(4), prolog).
      make_array(b(2,3), float).
      make_array(a(2), float),
          make_array(a(3,2), byte).

Error:
      make_array(a(7), X).                     (Error 4).
      make_array(a(6.0), float).                (Error 5).
      make_array(a(0), float).                  (Error 6).
      make_array(a(2), atom).                  (Error 6).
      make_array(a(4), float),
          make_array(a(5), byte).              (Error 42).





See Also
   array / 2, current_array / 2, getval / 2, make_array / 1, make_local_array / 1, make_local_array / 2, setval / 2
