F # - Prioridad de operadores

La siguiente tabla muestra el orden de prioridad de los operadores y otras palabras clave de expresión en el lenguaje F #, desde la prioridad más baja hasta la más alta.

Operador Asociatividad
como Derecha
cuando Derecha
| (tubo) Izquierda
; Derecha
dejar No asociativo
función, diversión, emparejar, probar No asociativo
Si No asociativo
Derecha
: = Derecha
, No asociativo
o, || Izquierda
&, && Izquierda
<op,> op, =, | op y op Izquierda
&&&, |||, ^^^, ~~~, <<<, >>> Izquierda
^ op Derecha
:: Derecha
:?>,:? No asociativo
- op, + op, (binario) Izquierda
* op, / op,% op Izquierda
** op Derecha
fx (aplicación de función) Izquierda
| (coincidencia de patrones) Derecha
operadores de prefijo (+ op, -op,%, %%, &, &&,! op, ~ op) Izquierda
. Izquierda
f (x) Izquierda
f <tipos> Izquierda

Ejemplo

let a : int32 = 20
let b : int32 = 10
let c : int32 = 15
let d : int32 = 5

let mutable e : int32 = 0
e <- (a + b) * c / d // ( 30 * 15 ) / 5
printfn "Value of (a + b) * c / d is : %d" e

e <- ((a + b) * c) / d // (30 * 15 ) / 5
printfn "Value of ((a + b) * c) / d is : %d" e

e <- (a + b) * (c / d) // (30) * (15/5)
printfn "Value of (a + b) * (c / d) is : %d" e

e <- a + (b * c) / d // 20 + (150/5)
printfn "Value of a + (b * c) / d is : %d" e

Cuando compila y ejecuta el programa, produce el siguiente resultado:

Value of (a + b) * c / d is : 90 
Value of ((a + b) * c) / d is : 90
Value of (a + b) * (c / d) is : 90 
Value of a + (b * c) / d is : 50