symbol | meaning |
---|
@m | the 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.:<:"><:</a></td><td>subtype operator</td></tr><tr><td><a href="$b865a5c21fdb4db6.md#Base.:>:">>:</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">=></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>-></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 |