LET

##
LET

            [SIC\]LET Variable [=] [Expression]
            [SIC\]LET Variable [=] Expression /CHOICE Value_1 ... Value_n
            [SIC\]LET Variable [=] Expression /FILE Filter
            [SIC\]LET Variable [=] Expression /FORMAT format_string
            [SIC\]LET Variable [=] Expression /FORMULA
            [SIC\]LET Variable [=] Expression /INDEX Value_1 ... Value_n
            [SIC\]LET Variable [=] Expression /LOWER
            [SIC\]LET Variable [=] Expression /NEW Type [Attr]
            [SIC\]LET Variable [=] Expression /PROMPT "Explanatory text"
            [SIC\]LET Variable [=] Expression /RANGE Min Max
            [SIC\]LET Variable [=] OldVariable /REPLACE
            [SIC\]LET Variable [=] Value_1 ... Value_n /RESIZE
            [SIC\]LET Variable [=] Expression /SEXAGESIMAL
            [SIC\]LET Variable [=] Val1 ... ValN /RESIZE
            [SIC\]LET Variable /STATUS Read|Write
            [SIC\]LET Variable [=] Expression /UPPER
            [SIC\]LET Variable [=] Expression /WHERE Condition_mask

        Assign  a value to a variable. The variable must already be defined (see
        HELP DEFINE) unless the /NEW option is present. Logical  expression  re-
        sults  cannot  be assigned to non logical variables, and vice versa. All
        numerical expression evaluations are done in double precision, and auto-
        matically converted to the type of (numerical) variable assigned.

        The  equal sign may be always omitted EXCEPT when using Free Syntax (see
        HELP LET Free_Syntax).

        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.

Subsections

- LET Free_Syntax
- LET GUI_Widget
- LET Structure
- LET /CHOICE
- LET /FILE
- LET /FORMAT
- LET /FORMULA
- LET /INDEX
- LET /LOWER
- LET /NEW
- LET /PROMPT
- LET /RANGE
- LET /REPLACE
- LET /RESIZE
- LET /SEXAGESIMAL
- LET /STATUS
- LET /UPPER
- LET /WHERE