System Variable LX

From NARS2000
Revision as of 13:09, 15 July 2015 by Robert Wallick (talk | contribs) (expanded, added example)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

⎕LX - Latent Expression

Z←⎕LX user query of ⎕LX returns the current value of the Latent eXpression or initial workspace startup/load value.
Returned by APL's Interpreter:   Z   is a string containing the current value of ⎕LX, and is null if ⎕LX is not defined, i.e. set to '', a null string. ⎕LX's value is the command to execute when the workspace is next loaded(after pre-Saving of course) - using )LOAD.


⎕LX←'START' Have the workspace execute function START when it is loaded via )LOAD or the File, Open menu
⎕LX←'' Do not have any function execute when the workspace is loaded (null string, this is the default).


APL's ⎕LX system variable is used within a workspace to set action to take when the workspace is loaded via )LOAD or the File, Open

menu. Frequently ⎕LX is set to the name of a function in the workspace. ⎕LX defaults to null.




Sample use #1 - running a startup function when workspace is first loaded:

⎕LX←'Start'

When this workspace is saved, the next time it is loaded through the )LOAD command or the File, Open menu, it will attempt to start the

function Start. An error will occur if the function named in ⎕LX is not present when the workspace is loaded.

The ⎕LX function is not executed if the workspace is loaded via the )XLOAD command or through the File, Xload

menu.

The function of ⎕LX is similar to the function of the AUTOEXEC.BAT file when DOS is started, or when in Windows if you have a shortcut in the Startup Folder in the

Start Menu. The function or action in the ⎕LX system variable is executed before the Session Manager returns control to you.

The action of ⎕LX when a workspace is )LOADed is essentially equivalent to typing ⍎⎕LX immediately after

loading the workspace.

Note that system commands beginning with a ) cannot be executed through ⎕LX. This is different from the APL Standard, for a reason.

This variation from standard prevents endless loops, such as if a workspace named loop had a ⎕LX value of )load loop.




Sample use #2 - displaying a user-introductory message using a global variable's value when the workspace is loaded:

⎕LX←'⎕←Description' ⍝ Where Description is a global string variable in either vector or character matrix format.
      Description←'Welcome APL User!  Welcome to NARS, we speak APL here!'
      ⍴Description      ⍝ Query the shape of workspace global variable Description
54
      ⎕LX←'⎕←Description'   ⍝ Notice use of the prompt or quad symbol and assignment arrow in front of the variable's name(⎕←), with APL's entire phrase in quotes.
      ⎕LX              ⍝ Query what is stored in system variable ⎕LX
⎕←Description
      )SAVE            ⍝  Save current workspace

      ...
      ⍝ APL workspace reloaded using )LOAD, startup message shown below:


Welcome APL User!  Welcome to NARS, we speak APL here!

The above ⎕LX examples are helpful, both as workspace reminders and or to help unfamiliar users quickly get started using that particular APL workspace. If you were last editing a function just before )OFF, you can remind yourself where you were at, for example after a long week-end or you were in a complex debug situation. See also State Indicator - system command )SI.



See Also

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
Alt+Shift
Alt ¨ ¯ < > × ÷
Shift ~ ! @ # $ % ^ & * ( ) _ +
Key ` 1 2 3 4 5 6 7 8 9 0 - =
Alt+Shift
Alt ? § π
Shift Q W E R T Y U I O P { } |
Key q w e r t y u i o p [ ] \
Alt+Shift
Alt
Shift A S D F G H J K L : "
Key a s d f g h j k l ; '
Alt+Shift χ
Alt
Shift 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}}}]]