System Function AT: Difference between revisions

From NARS2000
Jump to navigationJump to search
(New page: <table border="1" cellpadding="5" cellspacing="0" rules="none" summary=""> <tr> <td> <table border="0" cellpadding="5" cellspacing="0" summary=""> <tr> <td valign="top"><ap...)
 
No edit summary
Line 59: Line 59:


   <li><p>If <apll>L</apll> is <apll>4</apll>, the result describes the '''Object Size''' of the objects named in <apll>R</apll> and has two columns consisting of<br />
   <li><p>If <apll>L</apll> is <apll>4</apll>, the result describes the '''Object Size''' of the objects named in <apll>R</apll> and has two columns consisting of<br />
<apll>[1]</apll> The object's size as calculated by <apll>⎕SIZE</apll><br />
<apll>[1]</apll> The object's size as calculated by <apll>⎕SIZE</apll> which consists of the object header and data sizes<br />
<apll>[2]</apll> The same as column 1.<br />
<apll>[2]</apll> The object's data size only.<br />
</p></li>
</p></li>
</ul>
</ul>

Revision as of 20:00, 29 August 2010

Z←L ⎕AT R returns the attributes of the objects named in R.
R is a character scalar, vector, or matrix consisting of the names of objects (e.g., variables, functions, or operators).
L is an integer scalar whose value is either 1, 2, 3, or 4.
Z is an integer vector or matrix.


If R is a scalar, it is treated as the name; if R is a vector, it is treated as a vector of names separated from one another by one or more blanks; if R is a matrix, each row is treated as a single name surrounded by zero or more blanks.

If R consists of a single name, Z is a vector; otherwise Z is a matrix with as many rows as there are names in R.

The number of columns in Z depends upon the value of L.

  • If L is 1, the result describes the Valences of the objects named in R and has three columns consisting of
    [1] Whether or not there is an Explicit result (1 or 0): This value is 1 for variables and for functions/operators that return a result; 0 otherwise.
    [2] The Function Valence (0, 1, or 2): This value is 0 for a non-function or for a niladic function, 1 for a monadic function or for a monadic derived function from an operator, and 2 for a dyadic or ambivalent function or for a dyadic or ambivalent derived function from an operator.
    [3] The Operator valence (0, 1, or 2): This value is 0 for a non-operator, 1 for a monadic operator, and 2 for a dyadic operator.

  • If L is 2, the result describes the Fix Time of the objects named in R and has seven columns consisting of
    [1] Year
    [2] Month
    [3] Day
    [4] Hour
    [5] Minute
    [6] Second
    [7] Millisecond

    If an object named in R is not a user-defined function/operator, the corresponding row in the result is all 0. All times are in UTC and represent the time the function was last modified.

  • If L is 3, the result describes the Execution Properties of the objects named in R and has four columns consisting of
    [1] Whether or not the object is Nondisplayable (1 or 0)
    [2] Whether or not the object is Nonsuspendable (1 or 0)
    [3] Whether or not the object Ignores weak interrupts, i.e. Ctrl-C or Ctrl-Break (1 or 0)
    [4] Whether or not the object Converts non-resource errors to DOMAIN ERRORs (this value is always 0)

    If an object named in R is a variable, the corresponding row in the result is all 0. If an object named in R is a primitive or system function, the corresponding row in the result is 1 1 1 0. If an object named in R is a function array, train, or magic function, the corresponding row in the result is 0 1 1 0.

  • If L is 4, the result describes the Object Size of the objects named in R and has two columns consisting of
    [1] The object's size as calculated by ⎕SIZE which consists of the object header and data sizes
    [2] The object's data size only.