# Surround notation

Surround notation is a lesser known notation, but it is, however, used in many languages. In surround notation, you put the command on both sides of its arguments. One example is parentheses: they are the identity function of surround notation. In xml, the primary notation is surround.

In Perl 6, an operator that uses surround notation is called circumfix.

## Examples

In html-style languages:

``` <persons>
<person>
<name>Qwe Asd</name>
<age>OVER 9000!!!</age>
</person>
</persons>
```

The general syntax for these kinds of surround operators is `<tag></tag>`.

In C-style languages:

``` while(true) {
//Do stuff
}
```

It is the blocking operator `{/*code*/}` that is in surround notation. Other examples include `array[index]` and `"string"`.

In the mathematical notation the absolute value operator `|x|` is in surround notation.

## Uses of surround notation

Surround notation is generally essential for operations with a variable arity. For example, consider the following Python code:

```a = ( [1, 2, 3], [-1, -2, -3] ) #a pair of lists with length 3
```

If the surround notation of the square brackets were omitted, the code would mean something different.

```a = ( 1, 2, 3, -1, -2, -3 ) #one hexad of integers
```

The brackets are therefore required for delimiting an arbitrary number of sequential values from their surroundings.