State Indicator Stack R←⎕STACK

R is a two-column matrix, with one row per entry in the state indicator.

Column 1 :⎕OR form of user defined functions or operators on the state indicator. Space (⎕UCS 32) for entries that are not user defined functions or operators.

Column 2 :Indication of the type of the item on the stack.

space user defined function or operator
execute level
evaluated input
* desk calculator level
⎕DQ in callback function
other primitive operator

Example

      )SI
#.PLUS[2]*
.
#.MATDIV[4]
#.FOO[1]*


      ⎕STACK
         *
PLUS
         .
MATDIV
         *
FOO
         
         *

      ⎕STACK
8 2

      (⎕LC)=1↑⍴⎕STACK
0

Pendent defined functions and operators may be edited in Dyalog APL with no resulting SI damage. However, only the visible definition is changed; the pendent version on the stack is retained until its execution is complete. When the function or operator is displayed, only the visible version is seen. Hence ⎕STACK is a tool which allows the user to display the form of the actual function or operator being executed.

Example

To display the version of MATDIV currently pendent on the stack:

      ⎕STACK[4;1]
      RA MATDIV B
[1]   ⍝ Divide matrix A by matrix B
[2]    CAB
[3]   ⍝ Check accuracy
[4]    D0.5+A PLUS.TIMES B