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