Difference between revisions of "Begin-End for Grouping Expressions"

Line 1: Line 1:
 
[[Category: Analytica User Guide]]
 
[[Category: Analytica User Guide]]
 +
[[Category: Expressions]]
 +
 
<breadcrumbs> Analytica User Guide > Procedural Programming > {{PAGENAME}}</breadcrumbs><br />
 
<breadcrumbs> Analytica User Guide > Procedural Programming > {{PAGENAME}}</breadcrumbs><br />
  
Line 16: Line 18:
  
 
Grouping with parentheses:
 
Grouping with parentheses:
:<code>Function Table_to_array(A : Array[Rows, Columns] ; Rows, Columns: IndexType)</code>
+
<pre style="background:white; border:white; margin-left: 1em;">
:<code>Definition:</code>
+
Function Table_to_array(A : Array[Rows, Columns] ; Rows, Columns: IndexType)
::<code>MetaIndex Inds :=</code>
+
Definition:
:::<code>(</code>
+
  MetaIndex Inds :=
::::<code>For c := 1..Size(Columns)-1 do (</code>
+
      (
:::::<code>Var v := A[@Columns = c];</code>
+
        For c := 1..Size(Columns)-1 do (
:::::<code>Index I / Slice(Columns,c) := v[Rows = Unique(v, Rows)];</code>
+
            Var v := A[@Columns = c];
:::::<code>VarTerm(I)</code>
+
            Index I / Slice(Columns,c) := v[Rows = Unique(v, Rows)];
::::<code>)</code>
+
            VarTerm(I)
:::<code>);</code>
+
        )
:::<code>MdTable(A, Rows, Columns, inds)</code>
+
      );
 +
      MdTable(A, Rows, Columns, inds)
 +
</pre>
 
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 36: Line 40:
  
 
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.
 +
 +
==See Also==
 +
* [[Expression Syntax]]
 +
* [[Expression Assist]]
 +
* [[The Expression popup menu]]
  
 
<footer>Summary of Programming Constructs / {{PAGENAME}} / Local Variables</footer>
 
<footer>Summary of Programming Constructs / {{PAGENAME}} / Local Variables</footer>

Revision as of 01:10, 10 March 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.

See Also

Comments


You are not allowed to post comments.