Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
This topic includes a table of symbols and operators that are used in the F# language.
Table of Symbols and Operators
The following table describes symbols used in the F# language, provides links to topics that provide more information, and provides a brief description of some of the uses of the symbol. Symbols are ordered according to the ASCII character set ordering.
| Symbol or operator | Links | Description | 
|---|---|---|
| ! | 
 | |
| != | Not applicable. | 
 | 
| " | 
 | |
| """ | Delimits a verbatim text string. Differs from @"..." in that a you can indicate a quotation mark character by using a single quote in the string. | |
| # | 
 | |
| $ | No more information available. | 
 | 
| % | 
 | |
| %? | Computes the integer modulus, when the right side is a nullable type. | |
| & | 
 | |
| && | 
 | |
| &&& | 
 | |
| ' | 
 | |
| ``...`` | No more information available. | 
 | 
| ( ) | 
 | |
| (...) | 
 | |
| (*...*) | 
 | |
| (|...|) | 
 | |
| * | 
 | |
| *? | 
 | |
| ** | 
 | |
| + | 
 | |
| +? | 
 | |
| , | 
 | |
| - | 
 | |
| - | 
 | |
| -> | 
 | |
| . | 
 | |
| .. | 
 | |
| .. .. | 
 | |
| .[...] | 
 | |
| / | 
 | |
| /? | 
 | |
| // | 
 | |
| /// | 
 | |
| : | 
 | |
| :: | 
 | |
| := | 
 | |
| :> | 
 | |
| :? | 
 | |
| :?> | 
 | |
| ; | 
 | |
| < | 
 | |
| <? | Computes the less than operation, when the right side is a nullable type. | |
| << | 
 | |
| <<< | 
 | |
| <- | 
 | |
| <...> | 
 | |
| <> | 
 | |
| <>? | 
 | |
| <= | 
 | |
| <=? | 
 | |
| <| | 
 | |
| <|| | 
 | |
| <||| | 
 | |
| <@...@> | 
 | |
| <@@...@@> | 
 | |
| = | 
 | |
| =? | 
 | |
| == | Not applicable. | 
 | 
| > | 
 | |
| >? | 
 | |
| >> | 
 | |
| >>> | 
 | |
| >= | 
 | |
| >=? | 
 | |
| ? | 
 | |
| ? ... <- ... | No more information available. | 
 | 
| ?>=, ?>, ?<=, ?<, ?=, ?<>, ?+, ?-, ?*, ?/ | 
 | |
| >=?, >?, <=?, <?, =?, <>?, +?, -?, *?, /? | 
 | |
| ?>=?, ?>?, ?<=?, ?<?, ?=?, ?<>?, ?+?, ?-?, ?*?, ?/? | 
 | |
| @ | 
 | |
| [...] | 
 | |
| [|...|] | 
 | |
| [<...>] | 
 | |
| \ | 
 | |
| ^ | 
 | |
| ^^^ | 
 | |
| _ | 
 | |
| ` | 
 | |
| {...} | 
 | |
| | | 
 | |
| || | 
 | |
| ||| | 
 | |
| |> | 
 | |
| ||> | 
 | |
| |||> | 
 | |
| ~~ | 
 | |
| ~~~ | 
 | |
| ~- | 
 | |
| ~+ | 
 | 
Operator Precedence
The following table shows the order of precedence of operators and other expression keywords in the F# language, in order from lowest precedence to the highest precedence. Also listed is the associativity, if applicable.
| Operator | Associativity | 
|---|---|
| as | Right | 
| when | Right | 
| | (pipe) | Left | 
| ; | Right | 
| let | Nonassociative | 
| function, fun, match, try | Nonassociative | 
| if | Nonassociative | 
| -> | Right | 
| := | Right | 
| , | Nonassociative | 
| or, || | Left | 
| &, && | Left | 
| <op, >op, =, |op, &op | Left | 
| &&&, |||, ^^^, ~~~, <<<, >>> | Left | 
| ^op | Right | 
| :: | Right | 
| :?>, :? | Nonassociative | 
| -op, +op, (binary) | Left | 
| *op, /op, %op | Left | 
| **op | Right | 
| f x (function application) | Left | 
| | (pattern match) | Right | 
| prefix operators (+op, -op, %, %%, &, &&, !op, ~op) | Left | 
| . | Left | 
| f(x) | Left | 
| f<types> | Left | 
F# supports custom operator overloading. This means that you can define your own operators. In the previous table, op can be any valid (possibly empty) sequence of operator characters, either built-in or user-defined. Thus, you can use this table to determine what sequence of characters to use for a custom operator to achieve the desired level of precedence. Leading . characters are ignored when the compiler determines precedence.