Fsharp-operators-precedence

提供:Dev Guides
移動先:案内検索

F#-演算子の優先順位

次の表に、F#言語の演算子およびその他の式キーワードの優先順位を、優先順位の低いものから高いものへと示します。

Operator Associativity
as Right
when Right
(pipe)
Left ;
Right let
Non associative function, fun, match, try
Non associative if
Non associative
Right :=
Right ,
Non associative or,
Left &, &&
Left < op, >op, =,
op, &op Left
&&& ,
, ^, ~, <<<, >>>
Left ^ op
Right ::
Right :?>, :?
Non associative - op, +op, (binary)
Left * op,/op, %op
Left * *op
Right f x (function application)
Left
(pattern match) Right
prefix operators (PLUSop, -op, %, %%, &, &&, !op, ~op) Left
. Left
f(x) Left
f<types> Left

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

あなたがプログラムをコンパイルして実行すると、次の出力が得られます-

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