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.