The dyadic system function ŒAT returns a variety of attributes for objects named in its right argument. The right argument should be a character scalar, vector or matrix of names and the left argument an integer in the range 1 - 4. The information available is:
Left Length of Attributes Returned Argument result ÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎ 1 3 Valences 2 7 Fix timestamp 3 4 Execution properties 4 2 Object size
and the attributes are defined as follows (using the sample workspace defined below):
)FNS (Sample workspace) GO STOP WAIT )VARS NUMS
The first element of the valence vector is 1 if the object is a variable or function with an explicit result and 0 for other cases. The second element is 0 1 for monadic functions, 2 for dyadic or nomadic functions, and 0 otherwise. The third element is 0 if the object is not an operator, 1 for monadic operators, 2 for dyadic operators.
(ŒNL 2 3),1 ŒAT ŒNL 2 3 GO 1 0 0 (Niladic function, explicit result) NUMS 1 0 0 (Variable) STOP 0 0 0 (Niladic function, no result) WAIT 0 2 0 (Dyadic/nomadic function, no result)
If the named object is a function/operator, the timestamp of the latest fix of the function is returned.
(ŒNL 2 3),2 ŒAT ŒNL 2 3 GO 1990 5 25 0 19 14 703 (Latest fix time) NUMS 0 0 0 0 0 0 0 (Not a function) STOP 1990 5 25 0 19 10 906 WAIT 1990 5 25 0 19 30 640
A four element vector detailing the four execution properties:
Nondisplayable; Nonsuspendable; Ignores weak interrupts; Converts APL errors to DOMAIN ERROR
Thus the vector is 0 0 0 0 for unlocked functions and 1 1 1 1 for locked functions.
(ŒNL 2 3),3 ŒAT ŒNL 2 3 GO 0 0 0 0 NUMS 0 0 0 0 STOP 0 0 0 0 WAIT 0 0 0 0
A two element vector is returned for each object named, showing first the size of the object as a whole, and secondly either size of the data portion (for variables) or repeating the object size.
(ŒNL 2 3),4 ŒAT ŒNL 2 3 GO 100 100 (100 byte function) NUMS 56 40 (56 byte variable, 40 byte data portion) STOP 68 68 WAIT 104 104