Next: LET /CHOICE
Up: SIC Language Internal Help
Previous: IMPORT
Contents
Index
LET
[SIC\]LET Variable [=] [Expression]
[SIC\]LET Variable [=] Expression /NEW Type [Attr]
[SIC\]LET Variable [=] Expression /WHERE Condition_mask
[SIC\]LET Variable [=] Expression /PROMPT "Explanatory text"
[SIC\]LET Variable [=] Expression /RANGE Min Max
[SIC\]LET Variable [=] Expression /CHOICE Value_1 ... Value_n
[SIC\]LET Variable [=] Expression /INDEX Value_1 ... Value_n
[SIC\]LET Variable [=] Expression /FILE Filter
[SIC\]LET Variable [=] Expression /SEXAGESIMAL
[SIC\]LET Variable [=] Expression /LOWER
[SIC\]LET Variable [=] Expression /UPPER
[SIC\]LET Variable [=] Expression /FORMAT format_string
[SIC\]LET Variable [=] Expression /FORMULA
[SIC\]LET Variable [=] OldVariable /REPLACE
[SIC\]LET Variable /STATUS Read|Write
Assign a value to a variable. The variable must already be defined (see
DEFINE) unless the /NEW option is present. Logical expression results
cannot be assigned to non logical variables, and vice versa. All numeri-
cal expression evaluations are done in double precision, and automati-
cally converted to the type of (numerical) variable assigned.
The equal sign may be always omitted EXCEPT when using Free Syntax (see
below).
If no value is assigned to the Variable, the user will be prompted for
the variable value. The Prompt text can be defined with the /PROMPT Op-
tion.
VECTOR OPERATION:
Operations are vectorial, i.e. a full array is computed at the same
time. The variable name can define a subset of an known array, such as:
DEFINE REAL A[4,5,6] B[4]
LET A[,,3] = 1.0 ! or equivalently LET A[3] = 1.0
LET A[,2,2] = B ! or equivalently LET A[2,2] = B
These commands assign the value 1.0 to A[i,j,3], with i running from 1
to 4 and j from 1 to 5, and B[k] to A[k,2,2] for k from 1 to 4. Implic-
it transposition is now allowed, though still somewhat experimental:
both A[,2,3] and A[2,,3] are valid. A range of indexes can be specified
rather than one index: for the above example A[3:5] is a valid 4x5x3 ar-
ray, A[2:4,,] is a 3x5x6 array.
IMPLICIT LOOPS:
In addition to vector computing, it is possible to assign an array using
"implicit loops", i.e. functions of the array indices such as
DEFINE REAL A[4,5]
LET A[I,J] = (I-J)**2
Implicit loops cannot be mixed with variable index values.
CONDITION MASK (/WHERE option):
Vector assignment can be done only where a specified logical array (or
logical array expression) is true, using the /WHERE option. See HELP LET
/WHERE.
FREE SYNTAX:
The LET command may be omitted if no option is present, and is the SIC
syntax is set to FREE. In case of conflict between a variable name and a
(complete) command name, an error message is issued. See SIC command.
GUI (Graphic-User-Interface) input mode:
If command GUI\PANEL has been issued before, the LET command defines
widgets in the master window defined by GUI\PANEL. The widget is a sim-
ple prompt when option /PROMPT is set, a slider if option /RANGE is
present, a list of choices if option /CHOICE or /INDEX is given, and a
selection of files with the specified filter when option /FILE is speci-
fied. If neither of these options is present, the LET command works in
the usual way.
The widgets are created and activated by command GUI\GO. Standard input
can be used, and pressing button GO will define all the variables as
specified. If button ABORT is pressed instead, none of the variables are
modified and an error is returned. Error handling is available.
Subsections
Gildas manager
2014-07-01