This function provides information about a name in a workspace, including its usage, history, restrictions, role and origin.
Note: To retrieve this information for an unnamed value, wrap ⎕ATX in a dfn and use the name ⍵, for example {60⎕ATX'⍵'}
Y can be a simple character scalar, a simple or enclosed character vector, or a vector of character scalars and vectors (as least one must be a character vector) of the name(s) for which information is required.
X can be a scalar or a vector indicating the information required:
Group | X | Meaning | Default | |
---|---|---|---|---|
Identity | 0 | Name | '' | |
Syntax | 10 | Function result (0: none or not a function, 1: explicit, ¯1: shy) | 0 | |
11 | Function valence (0: niladic, 1: monadic, 2: dyadic, ¯2: ambivalent) | 0 | ||
12 | Operator valence: (0: not an operator, 1: monadic, 2: dyadic) | 0 | ||
Last edit | 20 | Author of last edit | '' | |
21 | Number of days passed between 1899-12-31 at 00:00 UTC and last edit (includes fractional days) | 0 | ||
22 | Local timestamp at last edit (format is the 7-item vector described by ⎕TS. |
⍬ | ||
23 | Number of bytes required for storage without sharing | 0 | ||
Restrictions | 30 | Source can be displayed | ¯1 | |
31 | Execution can be suspended mid-execution | ¯1 | ||
32 | Responds to weak interrupt | ¯1 | ||
Class* | 40 | Syntactic supra-class (¯1: invalid name, 0: undefined, 1: label, 2: variable, 3: function, 4: operator, 8: event, 9: object) | ¯1 | |
41 | Syntactic sub-class (0: none, 1: traditional/plain, 2: field/dynamic/instance, 3: property/derived/primitive, 4: class, 5: interface, 6: external, 7: external interface) | 0 | ||
42 | Full syntactic class (sum of supra- and sub-class) | ¯1 | ||
Source | 50 | File name | '' | |
51 | File encoding | '' | ||
52 | File checksum | '' | ||
53 | File line separators (13: Carriage Return, 10: Line Feed, 13 10: Carriage Return followed by Line Feed, 133: New Line, 11: Vertical Tab, 12: Form Feed, 8232: Line Separator, 8233: Paragraph Separator) | ⍬ | ||
54 | Definition's offset from top | 0 | ||
55 | Number of lines in definition | 0 | ||
Definition | 60 | Verbatim source (as typed) | 0⍴⊂'' | |
61 | Normalised source (with AUTOFORMAT=1 and TABSTOPS=4) | 0⍴⊂'' | ||
62 | Most precise available source (verbatim with fallback to normalised) | 0⍴⊂'' |
* Names in the Class group that can return ¯1 (meaning "invalid name") might return a different value in future versions of Dyalog, including values that are not currently possible and ones that deviate from the current ⎕NC values.
R depends on the combination of X and Y:
X | |||
---|---|---|---|
Scalar | Vector | ||
Y | Simple character scalar/vector | Requested value (not enclosed) | Vector of requested values |
Enclosed character vector | Requested value (enclosed) | Scalar containing vector of requested values | |
Vector of character scalars/vectors | Vector of requested values | Outer shape from ⍴⍺, inner shape from ⍴⍵ |
Examples:
Att 10 11 12 20 23 30 31 32 40 41 42 50 51 52 53 54 55
foo←{⍵ ⍵} Att ⎕ATX 'foo' ┌─┬──┬─┬┬───┬──┬──┬──┬─┬─┬───┬┬┬┬┬─┬─┐ │1│¯2│0││616│¯1│¯1│¯1│3│2│3.2│││││0│0│ └─┴──┴─┴┴───┴──┴──┴──┴─┴─┴───┴┴┴┴┴─┴─┘
x←42 Att ⎕ATX 'x' ┌─┬─┬─┬┬──┬──┬──┬──┬─┬─┬───┬┬┬┬┬─┬─┐ │0│0│0││32│¯1│¯1│¯1│2│1│2.1│││││0│0│ └─┴─┴─┴┴──┴──┴──┴──┴─┴─┴───┴┴┴┴┴─┴─┘
10 11 12 30 31 32 40 41 42 ⎕ATX 'x' 'foo' ┌───┬────┬───┬─────┬─────┬─────┬───┬───┬───────┐ │0 1│0 ¯2│0 0│¯1 ¯1│¯1 ¯1│¯1 ¯1│2 3│1 2│2.1 3.2│ └───┴────┴───┴─────┴─────┴─────┴───┴───┴───────┘
2 ⎕FIX'foo ← {' '⍵ ⍵ }' 60 61 ⎕ATX 'foo' ┌───────────────┬──────────────────┐ │┌───────┬─────┐│┌──────┬─────────┐│ ││foo ← {│⍵ ⍵ }│││ foo←{│ ⍵ ⍵}││ │└───────┴─────┘│└──────┴─────────┘│ └───────────────┴──────────────────┘
src←':namespace c' ':endnamespace' '' 'range←{⍺↓⍳⍵}' 2 ⎕FIX src 55 54 ⎕ATX'c' 'range' ┌───┬───┐ │2 1│0 3│ └───┴───┘
2 1↑¨0 3↓¨⊂src ┌────────────────────────────┬──────────────┐ │┌────────────┬─────────────┐│┌────────────┐│ ││:namespace c│:endnamespace│││range←{⍺↓⍳⍵}││ │└────────────┴─────────────┘│└────────────┘│ └────────────────────────────┴──────────────┘