System Function EA

From NARS2000
Jump to navigationJump to search

⎕EA - Execute Alternate

⎕EA Execute Alternate string expression
Z ← L ⎕EA R   where arguments L and R are string expressions.'

Dyadic Function

Z←L ⎕EA R "L" is executed if "R" fails, and the result may be assigned to a variable, like Z.
Both L and R should be string expressions. The result can be numeric, string or otherwise.


Quad Execute Alternate ⎕EA sample dyadic calls:

      Z←'5÷1' ⎕EA 'a÷1'   ⍝ Right argument FAILS(a÷1, because variable "a" does NOT exist), so LEFT argument (5÷1) is assigned to Z.
      Z
5
      Z←'5÷1' ⎕EA '6÷0.5' ⍝ RIGHT argument SUCCEEDS(6÷0.5), so Z becomes 6 divided by 0.5 or 12.
      Z
12

The Execute Alternate system function normally takes a string as left and right arguments. The left string(L) is executed when the interpreter encounters an error executing the right argument(R). In particular the left argument string may normally:

  • call a function
  • jump to a particular label
  • perform ANY allowed APL operation (e.g. addition, multiplication, division, subtraction, floor, ceiling, logic test, etc...)
  • assign/set a value

An APL Interpreter error (such as 'Domain Error') which triggers the Left argument of ⎕EA will also send a Diagnostic Error Message to ⎕DM, for debugging purposes, if needed by User. ⎕EA like ⎕ELX is useful in situations when a known error frequently occurs and the User Function knows how to work around or deal with it appropriately by say assigning a different value than the right argument - see the above examples.

See ALSO: ⎕ELX and ⎕DM

System Variables (A value may be assigned to these except for ⎕DM)
ALX CT DM DT ELX FC FEATURE FPC IC IO
LR LX PP PR PW RL SA WSID
Niladic System Functions (a value cannot be assigned to these)
A AV EM ET LC NNAMES NNUMS SI SYSID SYSVER
T TC TCBEL TCBS TCESC TCFF TCHT TCLF TCNL TCNUL
TS WA
Monadic or dyadic system functions (a value cannot be assigned to these)
AT CR DC DFT DL DR EA EC ERROR ES
EX FMT FX MF NAPPEND NC NCREATE NERASE NINFO NL
NLOCK NREAD NRENAME NREPLACE NRESIZE NSIZE NTIE NUNTIE STOP TF
TRACE UCS VR
Note that quad functions and variables (except for the ⎕A family of functions) are case insensitive


See Also
System Commands System Variables and Functions Operators


Keyboard
A+S
Alt ¨ ¯ < > × ÷
Sh ~ ! @ # $ % ^ & * ( ) _ +
Key ` 1 2 3 4 5 6 7 8 9 0 - =
A+S
Alt ? § π
Sh Q W E R T Y U I O P { } |
Key q w e r t y u i o p [ ] \
A+S
Alt
Sh A S D F G H J K L : "
Key a s d f g h j k l ; '
A+S
Alt
Sh Z X C V B N M < > ?
Key z x c v b n m , . /
NARS 2000 Lang
Tool
Bar
+ - × ÷ * ! ? |
< = >
~ § π .. ,
/ \ ¨ .
_ ¯
Second Row i j k i j k l g p r v x

[[Category:Mouse Group {{{1}}}|{{{2}}}]]