Difference between revisions of "Begin-End for Grouping Expressions"
Jhernandez3 (talk | contribs) m |
|||
Line 2: | Line 2: | ||
<breadcrumbs> Analytica User Guide > Procedural Programming > {{PAGENAME}}</breadcrumbs><br /> | <breadcrumbs> Analytica User Guide > Procedural Programming > {{PAGENAME}}</breadcrumbs><br /> | ||
− | As illustrated above, you can group several expressions (statements) as the definition of a variable or function simply by separating them by semicolons (<code>;</code>). To group several expressions as a condition or action of <code>If a Then b Else c</code> or <code>While a Do b</code>, or, indeed, anywhere a single expression | + | As illustrated above, you can group several expressions (statements) as the definition of a variable or function simply by separating them by semicolons (<code>;</code>). To group several expressions as a condition or action of <code>If a Then b Else c</code> or <code>While a Do b</code>, or, indeed, anywhere a single expression is valid, you should enclose the expressions between <code>Begin</code> and <code>End</code>, or between parentheses characters <code>(</code> and <code>)</code>. For example: |
− | is valid, you should enclose the expressions between <code>Begin</code> and <code>End</code>, or between parentheses characters <code>(</code> and <code>)</code>. | ||
+ | Grouping with <code>Begin</code> and <code>End</code>: | ||
+ | :<code>Variable rot := ... { a 2-D rotation matrix indexed by Dim and Dim2 }</code> | ||
+ | :<code>Variable X_rot := ComputedBy(Y_rot)</code> | ||
+ | :<code>Variable Y_rot :=</code> | ||
+ | ::<code>BEGIN</code> | ||
+ | ::<code>Var v := Array(Dim, [X, Y]);</code> | ||
+ | ::<code>Var v_r := sum(rot*v, Dim);</code> | ||
+ | ::<code>X_rot := v_r[Dim2 = 'x'];</code> | ||
+ | ::<code>v_r[Dim2 = 'y'];</code> | ||
+ | ::<code>END</code> | ||
+ | |||
+ | Grouping with parentheses: | ||
+ | :<code>Function Table_to_array(A : Array[Rows, Columns] ; Rows, Columns: IndexType)</code> | ||
+ | :<code>Definition:</code> | ||
+ | ::<code>MetaIndex Inds :=</code> | ||
+ | :::<code>(</code> | ||
+ | ::::<code>For c := 1..Size(Columns)-1 do (</code> | ||
+ | :::::<code>Var v := A[@Columns = c];</code> | ||
+ | :::::<code>Index I / Slice(Columns,c) := v[Rows = Unique(v, Rows)];</code> | ||
+ | :::::<code>VarTerm(I)</code> | ||
+ | ::::<code>)</code> | ||
+ | :::<code>);</code> | ||
+ | :::<code>MdTable(A, Rows, Columns, inds)</code> | ||
The overall value of the group of statements is the value from evaluating the last expression. For example: | The overall value of the group of statements is the value from evaluating the last expression. For example: | ||
Line 13: | Line 35: | ||
:<code>(VAR x := 10; x := x/2; x/2;) → 2.5</code> | :<code>(VAR x := 10; x := x/2; x/2;) → 2.5</code> | ||
− | The statements can be grouped on one line, or over several lines. In fact, Analytica does not care where new-lines, spaces, or tabs occur within an expression or sequence of expressions — as long as they are not within a number or identifier. | + | The statements can be grouped on one line, or over several lines. In fact, Analytica does not care where new-lines, spaces, or tabs occur within an expression or sequence of expressions — as long as they are not within a number or identifier. |
<footer>Summary of Programming Constructs / {{PAGENAME}} / Local Variables</footer> | <footer>Summary of Programming Constructs / {{PAGENAME}} / Local Variables</footer> |
Revision as of 20:44, 7 January 2016
As illustrated above, you can group several expressions (statements) as the definition of a variable or function simply by separating them by semicolons (;
). To group several expressions as a condition or action of If a Then b Else c
or While a Do b
, or, indeed, anywhere a single expression is valid, you should enclose the expressions between Begin
and End
, or between parentheses characters (
and )
. For example:
Grouping with Begin
and End
:
Variable rot := ... { a 2-D rotation matrix indexed by Dim and Dim2 }
Variable X_rot := ComputedBy(Y_rot)
Variable Y_rot :=
BEGIN
Var v := Array(Dim, [X, Y]);
Var v_r := sum(rot*v, Dim);
X_rot := v_r[Dim2 = 'x'];
v_r[Dim2 = 'y'];
END
Grouping with parentheses:
Function Table_to_array(A : Array[Rows, Columns] ; Rows, Columns: IndexType)
Definition:
MetaIndex Inds :=
(
For c := 1..Size(Columns)-1 do (
Var v := A[@Columns = c];
Index I / Slice(Columns,c) := v[Rows = Unique(v, Rows)];
VarTerm(I)
)
);
MdTable(A, Rows, Columns, inds)
The overall value of the group of statements is the value from evaluating the last expression. For example:
(VAR x := 10; x := x/2; x - 2) → 3
Analytica also tolerates a semicolon (;
) after the last expression in a group. It still returns the value of the last expression. For example:
(VAR x := 10; x := x/2; x/2;) → 2.5
The statements can be grouped on one line, or over several lines. In fact, Analytica does not care where new-lines, spaces, or tabs occur within an expression or sequence of expressions — as long as they are not within a number or identifier.
Enable comment auto-refresher