# Begin-End for Grouping Expressions

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

Enable comment auto-refresher