Blocks

Blocks are one or more expressions grouped together with curly braces. Each expression is evaluated in order and the value of the last expression is returned.

Any variables assigned within the block can only be used within the block.

Try uncommenting io.debug(degrees) to see the compile error from trying to use a variable that is not in scope.

Blocks can also be used to change the order of evaluation of binary operators expressions.

* binds more tightly than + so the expression 1 + 2 * 3 evaluates to 7. If the 1 + 2 should be evaluated first to make the expression evaluate to 9 then the expression can be wrapped in a block: { 1 + 2 } * 3. This is similar to grouping with parentheses in some other languages.