There is a particular syntax that allow us to write `cons`

cell in a more compact way than using the `cons`

constructor.

A pair can be written as such:

```
'(1 . 2) == (cons 1 2)
```

The big difference is that we can create `pairs`

using quote. Otherwise, Scheme would create a proper list `(1 . (2 . '()))`

.

The dot syntax force the expression to have only 2 members. Each member can be of any type including pairs.

```
'(1 . (2 . (3 . 4)))
> (1 2 3 . 4)
```

Note that the improper list should be displayed with a dot at the end to show that the `cdr`

of the last pair of the list isn't the empty list `'()`

.

This way of showing lists is sometime confusing as the following expression would be expressed not like one would expect it.

```
'((1 . 2) . ( 3 . 4))
> ((1 . 2) 3 . 4)
```

Since list usually skip the `.`

, the first argument of the list would be `(1 . 2)`

, the second argument would be `3`

but since the list is improper, the last `.`

is shown to show that the last element of the list isn't `'()`

.
Even thought, the data is shown in a different way, the internal data is as it was created.