# Difference between revisions of "Scalar System Variables"

The Scalar System Variables (⎕CT, ⎕IO, ⎕FPC, ⎕PP, ⎕PW, and ⎕RL) when assigned to (⎕PP←R), have two properties beyond the ones in their description in the Extended APL Standard.

• If a number to be assigned to any of the scalar system variables is out of the normal range for that variable, it is automatically range-limited, meaning if the number is too high, the highest valid number is used, if it is too low, the lowest valid number is used, and if the input is fractional and the normal range is integral, the ceiling of the input is used and then limited at the top or bottom as necessary. This way, you don't need to know the limits of a scalar system variable, and won't signal a DOMAIN ERROR by using a value out of range.

For example,

⎕PP←33.3
⎕PP
17
⎕CT←¯2
⎕CT
0

• If an empty simple vector is assigned to any of the scalar system variables, the default system value is used instead. This way, you can restore the default value without knowing its value.

For example,

⎕PP←⍬
⎕PP
10
⎕CT←''
⎕CT
3.0E¯15

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