> For the complete documentation index, see [llms.txt](https://gessadavide.gitbook.io/yallo-lang/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://gessadavide.gitbook.io/yallo-lang/docs/expressions.md).

# Expressions

Expression blocks are semicolon separated list of expression. The last expression define the type of the whole expression.&#x20;

```
e1; e2
```

The semicolon let the developer to ignore the result of an expression, but it is only possible for unit expression; the following expression will fail to compile:

```
12 + 15; // ignored int expression
13
```

Depending of where you declare an expression, the scope will change; for instance inside an entrypoint expression you can access the contract fields.

You can bind a name to an expression using *let* syntax:

```
let a = 12;
a
```

Which can be written also as:

```
let a = 12 in a
```

Let is also useful for tuple destructuring:

```
const a: (int, nat) = (12, 13n);
const b: int = let (x, y) = a in x;
```
