The vertical bar ( | ) is a computer character and glyph with various uses in mathematics, computing, and typography. It has many names, often related to particular meanings: Sheffer stroke (in logic), verti-bar, vbar, stick, broken bar, vertical line, vertical slash, bar, glidus, obelisk, or pipe.
The vertical bar is used as a mathematical symbol in numerous ways:
- absolute value: , read "the absolute value of x"
- set-builder notation: , read "the set of x such that x is less than two". Often a colon ':' is used instead of a vertical bar
- cardinality: , read "the cardinality of the set S"
- conditional probability: , read "the probability of X given Y"
- divisibility: , read "a divides b" or "a is a factor of b", though Unicode also provides special ‘divides’ and ‘does not divide’ symbols (U+2223 and U+2224: ∣, ∤)
- the Sheffer stroke in logic: , read "a nand b"
- distance: distance notes the shortest distance between point to line , so is perpendicular to line
- evaluate (subscript notation): , read "f of x, evaluated at x equals 4" (see subscripts at Wikibooks)
- length: |s|, read "the length of the string s"
- restriction: denotes a restriction of function where it is defined over a domain that is a superset of
- Sometimes a vertical bar following a function, with sub- and super-script limits a and b is used when evaluating definite integrals to mean "f(x) from a to b" or "f(b) – f(a)"
- A vertical bar can be used to separate variables from fixed parameters in a function, for example
- The order of a group G is written
- The determinant of a matrix A is sometimes written , and when the matrix entries are written out, the determinant is denoted by surrounding the matrix entries by vertical bars instead of the brackets or parentheses of the matrix, for instance
The double vertical bar, U+2016 ‖ double vertical line is also employed in mathematics.
- norm: , read "the norm of the vector x"
- parallelism in geometry: indicates that the line is parallel to the line
- propositional truncation (a type former which truncates a type down to a mere proposition in homotopy type theory): for any (read "term of type ") we have  (here reads "image of in " and reads "propositional truncation of ")
- : the quantum physical state
- : the dual state corresponding to the state above
- : the inner product of states and
- supergroups in physics are denoted G(N|M) which reads "G, M vertical bar N"; here G denotes any supergroup, M denotes the bosonic dimensions, and N denotes the Grassmann dimensions
A pipe is an inter-process communication mechanism originating in Unix, which allows the output (standard out and, optionally, standard error) of one process to be used as input (standard in) to another. In this way, a series of commands can be "piped" together, giving users the ability to quickly perform complex multi-stage processing from the command line or as part of a Unix shell script ("bash file"). In most Unix shells (command interpreters), this is represented by the vertical bar character. For example:
where the output from the "grep" process is piped to the "more" process.
The same "pipe" feature is also found in later versions of DOS and Microsoft Windows.
This usage has led to the character itself being called "pipe".
Specifically, in C and other languages following C syntax conventions, such as C++, Perl, Java and C#,
a | b denotes a bitwise or; whereas a double vertical bar
a || b denotes a (short-circuited) logical or. Since the character was originally not available in all code pages and keyboard layouts, ANSI C can transcribe it in form of the trigraph
??!, which, outside string literals, is equivalent to the
Although not as common as commas or tabs, the vertical bar can be used as a delimiter in a flat file. Examples of a pipe-delimited standard data format are LEDES 1998B and HL7. It is frequently used because vertical bars are typically uncommon in the data itself.
Similarly, the vertical bar may see use as a delimiter for regular expression operations (e.g. in sed). This is useful when the regular expression contains instances of the more common forward slash (
/) delimiter; using a vertical bar eliminates the need to escape all instances of the forward slash. However, this makes the bar unusable as the regular expression "alternative" operator.
<personal-name> ::= <name> | <initial>
In calculi of communicating processes (like pi-calculus), the vertical bar is used to indicate that processes execute in parallel.
The pipe in APL is the modulo or residue function between two operands and the absolute value function next to one operand.
Phonetics and orthographyEdit
In the Khoisan languages and the International Phonetic Alphabet, the vertical bar is used to write the dental click (ǀ). A double vertical bar is used to write the alveolar lateral click (ǁ). Since these are technically letters, they have their own Unicode code points in the Latin Extended-B range: U+01C0 for the single bar and U+01C1 for the double bar.
Longer single and double vertical bars are used to mark prosodic boundaries in the IPA.
A double vertical bar ⟨||⟩ or ⟨‖⟩ is the standard caesura mark in English literary criticism and analysis. It marks the strong break or caesura common to many forms of poetry, particularly Old English verse.
In the Geneva Bible and early printings of the King James Version, a double vertical bar is used to mark margin notes that contain an alternative translation from the original text. These margin notes always begin with the conjunction "Or". In later printings of the King James Version, the double vertical bar is irregularly used to mark any comment in the margins.
The vertical bar is encoded in Unicode at U+007C | Vertical line (124decimal · HTML
Solid vertical bar vs broken barEdit
The broken bar (¦) in computing was historically an allograph of the vertical bar and was perceived so before a broad implementation of extended ASCII character sets (namely, ISO/IEC 8859 series), which did distinguish both. Since the 1990s, it is considered a separate character, not a part of ASCII, and also termed "parted rule" in Unicode documentation. But in many fonts, the glyph used for the vertical bar looks exactly like a broken bar.
The broken bar is encoded in Unicode at U+00A6 ¦ Broken Bar (166decimal · HTML
Due to historical confusion between the two, computer keyboards and displays may not clearly or consistently differentiate them:
- The typical keyboard layout used in the United Kingdom features separate keys for vertical bar and broken bar; however, in many fonts the vertical bar key produces a broken-bar symbol. Some keyboard drivers map the broken bar key to the vertical bar, and the vertical bar key, shared with the grave accent (`), generates the broken bar when pressed in combination with AltGr.
- The ANSI QWERTY keyboard has only a broken bar key, producing a vertical bar character.
- A key on the French AZERTY keyboard always produces a vertical bar character, but is represented on the key itself as a broken bar. The same holds for many German QWERTZ keyboards, where the “> < |” key in the lower left is labelled “> < ¦” but always produces a vertical bar character.
The broken bar has hardly any practical application and does not appear to have any clearly identified uses distinct from the vertical bar. In non-computing use — for example in mathematics, physics and general typography — the broken bar is not an acceptable substitute for the vertical bar. Aforementioned usages in computing rely on the abstract character with code point 124 (0x7C) in ASCII (or ASCII compatible code page) and do not depend on visual rendering, which actually may be a broken bar in some environments.
In common character mapsEdit
|Vertical bar ('|')||Broken bar ('¦')|
CP437, CP667, CP720, CP737, CP790, CP819, CP852, CP855, CP860, CP861, CP862, CP865, CP866, CP867, CP869, CP872, CP895, CP932, CP991
|CP775||124 (7Ch)||167 (A7h)|
|CP850, CP857, CP858||124 (7Ch)||221 (DDh)|
|CP863||124 (7Ch)||160 (A0h)|
|CP864||124 (7Ch)||219 (DBh)|
|ISO/IEC 8859-1, -7, -8, -9, -13,
CP1250, CP1251, CP1252, CP1253, CP1254, CP1255, CP1256, CP1257, CP1258
|124 (7Ch)||166 (A6h)|
|ISO/IEC 8859-2, -3, -4, -5, -6, -10, -11, -14, -15, -16||124 (7Ch)||N/A|
|EBCDIC (CCSID 500 variant)||187 (BBh)||166 (A6h)|
|HTML|||||¦ or ¦|
Additional related Unicode characters:
- Double vertical line ( ‖ ): U+2016 used in pairs to indicate norm
- Parallel to ( ∥ ): U+2225
- Latin letter dental click (⟨ǀ⟩): U+01C0
- Latin letter lateral click (⟨ǁ⟩): U+01C1
- Symbol 'divides' (⟨∣⟩): U+2223
- Various Box-drawing characters at U+2500 to U+257F
In text processingEdit
In LaTeX, the vertical bar can be used as delimiter in mathematical mode. The sequence
\| creates a double vertical line (
a | b \| c is set as ). This has different spacing from
\parallel, which are relational operators:
a \mid b \parallel c is set as . In LaTeX text mode, the vertical bar produces an em dash (—), or one can use the
\textbar command instead.
- Univalent Foundations Program (2013). Homotopy Type Theory: Univalent Foundations of Mathematics (GitHub version) (PDF). Institute for Advanced Study. p. 108.
- Univalent Foundations Program (2013). Homotopy Type Theory: Univalent Foundations of Mathematics (print version). Institute for Advanced Study. p. 450.
- Larus Thorlacius, Thordur Jonsson (eds.), M-Theory and Quantum Geometry, Springer, 2012, p. 263.
- "virgula, n.", Oxford English Dictionary, 1st ed., Oxford: Oxford University Press, 1917.
- "virgule, n.", Oxford English Dictionary, 1st ed., Oxford: Oxford University Press, 1917.
- Jim Price (2010-05-24). "ASCII Chart: IBM PC Extended ASCII Display Characters". Retrieved 2012-02-23.
- "Is Your Pipe Wrong?". 2008-12-08. Retrieved 2015-12-01.
- "Two guys walked into a bar, but the bar was broken". 2006-02-24. Retrieved 2015-12-01.
- Jukka "Yucca" Korpela (2006-09-20). "Detailed descriptions of the characters". Retrieved 2012-02-23.
- Broken bar is no longer considered a part of ASCII since early 1990s