Punctuation

Extended documentation for mathematical symbols & functions is here.

symbolmeaning
@mthe at-symbol invokes macro m; followed by space-separated expressions or a function-call-like argument list
!an exclamation mark is a prefix operator for logical negation (“not”)
a!function names that end with an exclamation mark modify one or more of their arguments by convention
#the number sign (or hash or pound) character begins single line comments
#=when followed by an equals sign, it begins a multi-line comment (these are nestable)
=#end a multi-line comment by immediately preceding the number sign with an equals sign
$the dollar sign is used for string and expression interpolation
%the percent symbol is the remainder operator
^the caret is the exponentiation operator
&single ampersand is bitwise and
&&double ampersands is short-circuiting boolean and
|single pipe character is bitwise or
||double pipe characters is short-circuiting boolean or
the unicode xor character is bitwise exclusive or
~the tilde is an operator for bitwise not
a trailing apostrophe is the adjoint (that is, the complex transpose) operator Aᴴ
*the asterisk is used for multiplication, including matrix multiplication and string concatenation
/forward slash divides the argument on its left by the one on its right
\backslash operator divides the argument on its right by the one on its left, commonly used to solve matrix equations
()parentheses with no arguments constructs an empty Tuple
(a,…)parentheses with comma-separated arguments constructs a tuple containing its arguments
(a=1,…)parentheses with comma-separated assignments constructs a NamedTuple
(x;y)parentheses can also be used to group one or more semicolon separated expressions
a[]array indexing (calling getindex or setindex!)
[,]vector literal constructor (calling vect)
[;]vertical concatenation (calling vcat or hvcat)
[   ]with space-separated expressions, horizontal concatenation (calling hcat or hvcat)
T{ }curly braces following a type list that type’s parameters
{}curly braces can also be used to group multiple where expressions in function declarations
;semicolons separate statements, begin a list of keyword arguments in function declarations or calls, or are used to separate array literals for vertical concatenation
,commas separate function arguments or tuple or array components
?the question mark delimits the ternary conditional operator (used like: conditional ? if_true : if_false)
“ “the single double-quote character delimits String literals
“”” “””three double-quote characters delimits string literals that may contain and ignore leading indentation
‘ ‘the single-quote character delimits Char (that is, character) literals
`</code></td><td>the backtick character delimits <a href="$91c4fc70abfc40d9.md#Running-External-Programs">external process</a> (<a href="$b865a5c21fdb4db6.md#Base.Cmd">Cmd</a>) literals</td></tr><tr><td><code>A...</code></td><td>triple periods are a postfix operator that "splat" their arguments' contents into many arguments of a function call or declare a varargs function that "slurps" up many arguments into a single tuple</td></tr><tr><td><code>a.b</code></td><td>single periods access named fields in objects/modules (calling <a href="$b865a5c21fdb4db6.md#Base.getproperty">getproperty</a> or <a href="$b865a5c21fdb4db6.md#Base.setproperty!">setproperty!</a>)</td></tr><tr><td><code>f.()</code></td><td>periods may also prefix parentheses (like <code>f.(...)</code>) or infix operators (like <code>.+</code>) to perform the function element-wise (calling <a href="$0fb399445a28ab9e.md#Base.Broadcast.broadcast">broadcast</a>)</td></tr><tr><td><code>a:b</code></td><td>colons (<a href="$ed6dfb34b0713c41.md#Base.::">:</a>) used as a binary infix operator construct a range from <code>a</code> to <code>b</code> (inclusive) with fixed step size <code>1</code></td></tr><tr><td><code>a:s:b</code></td><td>colons (<a href="$ed6dfb34b0713c41.md#Base.::">:</a>) used as a ternary infix operator construct a range from <code>a</code> to <code>b</code> (inclusive) with step size <code>s</code></td></tr><tr><td><code>:</code></td><td>when used by themselves, <a href="$0fb399445a28ab9e.md#Base.Colon">Colon</a>s represent all indices within a dimension, frequently combined with <a href="$70022796de7fdb45.md#man-array-indexing">indexing</a></td></tr><tr><td><code>::</code></td><td>double-colons represent a type annotation or <a href="$b865a5c21fdb4db6.md#Core.typeassert">typeassert</a>, depending on context, frequently used when declaring function arguments</td></tr><tr><td><code>:( )</code></td><td>quoted expression</td></tr><tr><td><code>:a</code></td><td><a href="$b865a5c21fdb4db6.md#Core.Symbol">Symbol</a> a</td></tr><tr><td><a href="$b865a5c21fdb4db6.md#Core.:&lt;:">&lt;:</a></td><td>subtype operator</td></tr><tr><td><a href="$b865a5c21fdb4db6.md#Base.:&gt;:">&gt;:</a></td><td>supertype operator (reverse of subtype operator)</td></tr><tr><td><code>=</code></td><td>single equals sign is <a href="$6b61ee783e1a9af2.md#man-variables">assignment</a></td></tr><tr><td><a href="$ed6dfb34b0713c41.md#Base.:==">==</a></td><td>double equals sign is value equality comparison</td></tr><tr><td><a href="$b865a5c21fdb4db6.md#Core.:===">===</a></td><td>triple equals sign is programmatically identical equality comparison</td></tr><tr><td><a href="$dfed9332642208d1.md#Base.Pair">=&gt;</a></td><td>right arrow using an equals sign defines a <a href="$dfed9332642208d1.md#Base.Pair">Pair</a> typically used to populate <a href="$dfed9332642208d1.md#Dictionaries">dictionaries</a></td></tr><tr><td><code>-&gt;</code></td><td>right arrow using a hyphen defines an <a href="$a48fb6239375bdd3.md#man-anonymous-functions">anonymous function</a> on a single line</td></tr><tr><td>>`
function composition operator (typed with \circ{tab}) combines two functions as though they are a single larger function