Namespace {R}←{X}⎕NS Y

If specified, X must be a simple character scalar or vector identifying the name of a namespace.

Y is either a character array which represents a list of names of objects to be copied into the namespace, or a ref to a namespace, or an array produced by the ⎕OR of a namespace.

Case 1

In the first case, Y must be a simple character scalar, vector, matrix or a nested vector of character vectors identifying zero or more workspace objects to be copied into the namespace X.  The identifiers in X and Y may be simple names or compound names separated by '.' and including the names of the special namespaces '#', '##' and '⎕SE'.

The namespace X is created if it doesn't already exist.  If the name is already in use for an object other than a namespace, APL issues a DOMAIN ERROR.

If X is omitted, an unnamed namespace is created.

The objects identified in the list Y are copied into the namespace X.

If X is specified, the result R is the full name (starting with #. or ⎕SE.) of the namespace X. If X is omitted, the result R is a namespace reference, or ref, to an unnamed namespace.

Examples

      +'X'⎕NS''               ⍝ Create namespace X.
#.X       ⊢'X'⎕NS'VEC' 'UTIL.DISP'⍝ Copy VEC and DISP to X. #.X       )CS X                   ⍝ Change to namespace X. #.X       ⊢'Y'⎕NS'#.MAT' '##.VEC' ⍝ Create #.X.Y &copy in #.X.Y       ⊢'#.UTIL'⎕NS'Y.MAT'     ⍝ Copy MAT from Y to UTIL #.UTIL. #.UTIL       ⊢'#'⎕NS'Y'              ⍝ Copy namespace Y to root. #
      ⊢''⎕NS'#.MAT'           ⍝ Copy MAT to current space.
#.X
      ⊢''⎕NS''                ⍝ Display current space.
#.X
      ⊢'Z'⎕NS ⎕OR'Y'          ⍝ Create nspace from ⎕OR.
#.X.Z
      NONAME←⎕NS ''           ⍝ Create unnamed nspace
      NONAME
#.[Namespace]
      DATA←⎕NS¨3⍴⊂''         ⍝ Create 3-element vector of
                             ⍝ distinct unnamed nspaces
      DATA
 #.[Namespace]  #.[Namespace]  #.[Namespace]

Case 2

The second case is where Y is a ref to a namespace or the ⎕OR of a namespace.

If Y is a ref to or a ⎕OR of a GUI object, X must be a valid parent for the GUI object represented by Y, or the operation will fail with a DOMAIN ERROR.

Otherwise, the result of the operation depends upon the existence of X.