F # - Precedenza degli operatori

La tabella seguente mostra l'ordine di precedenza degli operatori e di altre parole chiave di espressione nel linguaggio F #, dalla precedenza minima alla precedenza più alta.

Operatore Associatività
come Destra
quando Destra
| (tubo) Sinistra
; Destra
permettere Non associativo
funzione, divertimento, corrispondenza, prova Non associativo
Se Non associativo
Destra
: = Destra
, Non associativo
o, || Sinistra
&, && Sinistra
<op,> op, =, | op, & op Sinistra
&&&, |||, ^^^, ~~~, <<<, >>> Sinistra
^ op Destra
:: Destra
:?>,:? Non associativo
- op, + op, (binario) Sinistra
* op, / op,% op Sinistra
** operazione Destra
fx (applicazione funzione) Sinistra
| (pattern match) Destra
operatori di prefisso (+ op, -op,%, %%, &, &&,! op, ~ op) Sinistra
. Sinistra
f (x) Sinistra
f <tipi> Sinistra

Esempio

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

Quando compili ed esegui il programma, restituisce il seguente output:

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