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

# current_array(?Array, -Options)

Succeeds if there exists an array as denoted by Array and with type and visibility as given in the list Options.

Array
  Atom or compound term.
Options
  Variable or list.

## Description

current_array/2 is used to retrieve information about existing visible arrays and non-logical variables. Array is a term denoting the array's name and dimensions and Options is a list describing the array's type (prolog, float, integer or byte) and visibility (local, global).

Note: Up to ECLiPSe version 6.1 this predicate worked also on references.

### Modes and Determinism

- current_array(-, -) is nondet
- current_array(+, -) is semidet

### Modules

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

### Fail Conditions

Fails if there is no array whose name unifies with ArrayName

### Exceptions

(5) type error
  Array is neither variable, atom nor compound term.
(5) type error
  Options is neither a list nor a variable.

## Examples

    [eclipse 1]: local array(a(2)), array(b(2,3,4), float).

    yes.
    [eclipse 2]: current_array(a(Size), [Type,Vis|_]).

    Size = 2
    Type = prolog
    Vis = local
    yes.
    [eclipse 3]: current_array(Array, Props).

    Array = a(2)
    Props = [prolog, local]     More? (;)

    Array = b(2, 3, 4)
    Props = [float, local]     More? (;)

    no (more) solution.

    Error:
          current_array("a", L).    (Error 5).
          current_array(a, 9).      (Error 5).

## See Also

array / 1, array / 2, variable / 1