シンボルと演算子のリファレンス (F#)

このトピックでは、F# 言語で使用されるシンボルと演算子の一覧を示します。

シンボルと演算子の表

次の表に、F# 言語で使用されるシンボルと詳細を説明したトピックへのリンクを示します。また、シンボルの使用方法について簡単に説明します。シンボルの順序は、ASCII 文字セットの順序に従っています。

シンボルまたは演算子

リンク

説明

!

参照セル (F#)

コンピュテーション式 (F#)

  • 参照セルを逆参照します。

  • キーワードの後に、ワークフローで制御されるキーワードの動作の、変更後のバージョンを示します。

!=

該当なし

  • F# では使用されません。非等値演算には <> を使用します。

"

リテラル (F#)

文字列 (F#)

  • 文字列を区切ります。

"""

文字列 (F#)

逐語的文字列を区切ります。文字列を単一引用符を使用して、引用符の文字を指定できること @"..." とは異なります。

#

コンパイラ ディレクティブ (F#)

フレキシブル型 (F#)

  • #light など、プリプロセッサまたはコンパイラ ディレクティブの先頭に付けられます。

  • 型で使用した場合は、フレキシブル型を示し、型とその派生型のいずれかを指します。

$

詳細情報はありません。

  • 一部のコンパイラにより生成された変数と関数名で内部的に使用されます。

%

算術演算子 (F#)

コード クォート (F#)

  • 整数の剰余を計算します。引用符をスプライスするために使用します。

%?

Null 許容の演算子 (F#)

右側が null 許容型の場合、整数の剰余を計算します。

&

match 式 (F#)

  • 他の言語との相互運用時に使用するために、変更可能な値のアドレスを計算します。

  • AND パターンで使用されます。

&&

ブール演算子 (F#)

  • 論理 AND 演算を実行します。

&&&

ビット処理演算子 (F#)

  • ビットごとの AND 演算を実行します。

'

リテラル (F#)

自動ジェネリック化 (F#)

  • 1 文字のリテラルを区切ります。

  • ジェネリック型パラメーターを示します。

``...``

詳細情報はありません。

  • 識別子を区切ることで、有効な識別子 (言語のキーワードなど) として認識されるようにします。

( )

unit 型 (F#)

  • 単位の種類の単一の値を表します。

(...)

タプル (F#)

演算子のオーバーロード (F#)

  • 式が評価される順序を示します。

  • タプルを区切ります。

  • 演算子の定義で使用されます。

(*...*)

  • 複数行にわたる可能性のあるコメントを区切ります。

(|...|)

アクティブ パターン (F#)

  • アクティブ パターンを区切ります。バナナ クリップとも呼ばれます。

*

算術演算子 (F#)

タプル (F#)

測定単位 (F#)

  • 二項演算子として使用される場合は、左側と右側の値を乗算します。

  • 型の場合は、タプルのペアリングを示します。

  • 測定単位の種類で使用されます。

*?

Null 許容の演算子 (F#)

  1. 右側が null 許容型の場合、左側をインクリメントします。

**

算術演算子 (F#)

  • 指数演算を実行します (x ** y は x の y 乗です)。

+

算術演算子 (F#)

  • 二項演算子として使用される場合は、左側と右側の値を加算します。

  • 単項演算子として使用される場合は、正数を示します (正式には、符号を変更しないで同じ値を生成します)。

+?

Null 許容の演算子 (F#)

  1. 右側が null 許容型の場合、左側を追加します。

,

タプル (F#)

  • タプルの要素 (型パラメーター) を分割します。

-

算術演算子 (F#)

  • 二項演算子として使用される場合は、左側の値から右側の値を減算します。

  • 単項演算子として使用される場合は、否定演算を実行します。

-

Null 許容の演算子 (F#)

  1. 右側が null 許容型の場合、左側から右側を減算します。

->

関数 (F#)

match 式 (F#)

  • 関数の型の場合は、引数と戻り値を区切ります。

  • 式 (シーケンス式) を生成します。yield キーワードに相当します。

  • match 式で使用されます。

.

メンバー (F#)

プリミティブ型 (F#)

  • メンバーにアクセスし、完全修飾名の個々の名前を区切ります。

  • 浮動小数点数の小数点を示します。

..

ループ: for...in 式 (F#)

  • 範囲を指定します。

.. ..

ループ: for...in 式 (F#)

  • インクリメントと共に範囲を指定します。

.[...]

配列 (F#)

  • 配列要素にアクセスします。

/

算術演算子 (F#)

測定単位 (F#)

  • 左側の値 (分子) を右側の値 (分母) で除算します。

  • 測定単位の種類で使用されます。

/?

Null 許容の演算子 (F#)

  1. 右側が null 許容型の場合、右側に、左側を分割します。

//

  • 単一行コメントの開始を示します。

///

XML ドキュメント (F#)

  • XML コメントを示します。

:

関数 (F#)

  • 型の注釈の場合は、パラメーターまたはメンバーの名前とその型を区切ります。

::

リスト (F#)

match 式 (F#)

  • リストを作成します。左側の要素が右側のリストに追加されます。

  • リストの各部分を分割するためにパターン マッチで使用されます。

:=

参照セル (F#)

  • 参照セルに値を代入します。

:>

キャストと変換 (F#)

  • 型を上位階層の型に変換します。

:?

match 式 (F#)

  • 値が指定された型に一致する場合は true を返します。それ以外の場合は false を返します (型テスト演算子)。

:?>

キャストと変換 (F#)

  • 型を下位階層の型に変換します。

;

冗語構文 (F#)

リスト (F#)

レコード (F#)

  • 式を区切ります (通常は、冗語構文で使用されます)。

  • リストの要素を区切ります。

  • レコードのフィールドを区切ります。

<

算術演算子 (F#)

  • 小なり演算を実行します。

<?

Null 許容の演算子 (F#)

右側が null 許容型の場合、演算よりも小さいを計算します。

<<

関数 (F#)

  • 逆の順序で 2 つの関数を合成します。2 番目の関数が最初に実行されます (後方合成演算子)。

<<<

ビット処理演算子 (F#)

  • 左側の数値のビットを、右側で指定されたビット数だけ左へシフトします。

<-

値 (F#)

  • 値を変数に代入します。

<...>

自動ジェネリック化 (F#)

  • 型パラメーターを区切ります。

<>

算術演算子 (F#)

  • 左側の値が右側の値と等しくない場合は true を返します。それ以外の場合は false を返します。

<>?

Null 許容の演算子 (F#)

  1. 右側を Null 許容型である場合、"等しくない" 演算を実行します。

<=

算術演算子 (F#)

  • 左側の値が右側の値以下である場合は true を返します。それ以外の場合は false を返します。

<=?

Null 許容の演算子 (F#)

  1. 右側が null 許容型の操作と "" で以下を計算します。

<|

関数 (F#)

  • 右側の式の結果を左側の関数に渡します (後方パイプ演算子)。

<||

Operators.( <|| )<'T1,'T2,'U> 関数 (F#)

  • 左側の関数に右側の 2 種類のタプルの引数を渡します。

<|||

Operators.( <||| )<'T1,'T2,'T3,'U> 関数 (F#)

  • 左側の関数に右側の 3 種類のタプルの引数を渡します。

<@...@>

コード クォート (F#)

  • 型指定されたコード クォートを区切ります。

<@@...@@>

コード クォート (F#)

  • 型指定されていないコード クォートを区切ります。

=

算術演算子 (F#)

  • 左側の値が右側の値と等しい場合は true を返します。それ以外の場合は false を返します。

=?

Null 許容の演算子 (F#)

  1. 右側が null 許容型の場合 "等しい" 演算を実行します。

==

該当なし

  • F# では使用されません。等値演算には = を使用します。

>

算術演算子 (F#)

  • 左側の値が右側の値よりも大きい場合は true を返します。それ以外の場合は false を返します。

>?

Null 許容の演算子 (F#)

  1. 右側が null 許容型の操作と ""、greather を計算します。

>>

関数 (F#)

  • 2 つの関数を合成します (前方合成演算子)。

>>>

ビット処理演算子 (F#)

  • 左側の数値のビットを、右側で指定された桁数だけ右へシフトします。

>=

算術演算子 (F#)

  • 右側の値が左側の値以上である場合は true を返します。それ以外の場合は false を返します。

>=?

Null 許容の演算子 (F#)

  1. 右側が null 許容型の場合 "以上" 操作を計算します。

?

パラメーターと引数 (F#)

  • 引数を指定します (オプション)。

  • 動的なメソッドやプロパティの呼び出しで演算子として使用されます。独自の実装を提供する必要があります。

? ... <- ...

詳細情報はありません。

  • 動的プロパティの設定で演算子として使用されます。独自の実装を提供する必要があります。

?>=, ?>, ?<=, ?<, ?=, ?<>, ?+, ?-, ?*, ?/

Null 許容の演算子 (F#)

  1. なしの対応する演算子と同じですか。null 許容型が左にある場合、プレフィックス。

>=?, >?, <=?, <?, =?, <>?, +?, -?, *?, /?

Null 許容の演算子 (F#)

  1. なしの対応する演算子と同じですか。null 許容型が右端にある場合は、サフィックスとして設定します。

?>=?, ?>?, ?<=?, ?<?, ?=?, ?<>?, ?+?, ?-?, ?*?, ?/?

Null 許容の演算子 (F#)

  1. 両側が null 許容型である周囲の疑問符のない対応する演算子と同じです。

@

リスト (F#)

文字列 (F#)

  • 2 つのリストを連結します。

  • リテラル文字列の前にある場合は、その文字列が逐語的に解釈されることを示します。エスケープ文字は解釈されません。

[...]

リスト (F#)

  • リストの要素を区切ります。

[|...|]

配列 (F#)

  • 配列の要素を区切ります。

[<...>]

属性 (F#)

  • 属性を区切ります。

\

文字列 (F#)

  • 次の文字をエスケープします。文字やリテラル文字列で使用されます。

^

静的に解決された型パラメーター (F#)

文字列 (F#)

  • 実行時ではなく、コンパイル時に解決される必要がある型パラメーターを指定します。

  • 文字列を連結します。

^^^

ビット処理演算子 (F#)

  • ビットごとの排他的 OR 演算を実行します。

_

match 式 (F#)

ジェネリック (F#)

  • ワイルドカード パターンを示します。

  • 匿名ジェネリック パラメーターを指定します。

`

自動ジェネリック化 (F#)

  • ジェネリック型パラメーターを示すために内部的に使用されます。

{...}

シーケンス (F#)

レコード (F#)

  • シーケンス式とコンピュテーション式を区切ります。

  • レコードの定義で使用されます。

|

match 式 (F#)

  • 個々の一致ケース、個々の判別共用体のケース、および列挙値を区切ります。

||

ブール演算子 (F#)

  • 論理 OR 演算を実行します。

|||

ビット処理演算子 (F#)

  • ビットごとの OR 演算を実行します。

|>

関数 (F#)

  • 左側の結果を右側の関数に渡します (前方パイプ演算子)。

||>

Operators.( ||> )<'T1,'T2,'U> 関数 (F#)

  • 右側の関数に左側の 2 種類のタプルの引数を渡します。

|||>

Operators.( |||> )<'T1,'T2,'T3,'U> 関数 (F#)

  1. 右側の関数に左側の 3 種類のタプルの引数を渡します。

~~

演算子のオーバーロード (F#)

  • 単項否定演算子のオーバーロードを宣言するために使用します。

~~~

ビット処理演算子 (F#)

  • ビットごとの NOT 演算を実行します。

~-

演算子のオーバーロード (F#)

  • 単項マイナス演算子のオーバーロードを宣言するために使用します。

~+

演算子のオーバーロード (F#)

  • 単項プラス演算子のオーバーロードを宣言するために使用します。

演算子の優先順位

次の表に、F# 言語で使用される演算子とその他の式のキーワードの優先順位を、低いものから順に示します。また、結合規則も示します (該当する場合)。

[演算子]

結合規則

as

Right 

when

Right 

| (パイプ)

Left 

;

Right 

let

非結合

function, fun, match, try

非結合

if

非結合

->

Right 

:=

Right 

,

非結合

or, ||

Left 

&, &&

Left 

<op, >op, =,|op, &op

Left 

&&&, |||, ^^^, ~~~, <<<, >>>

Left 

^op

Right 

::

Right 

:?>, :?

非結合

-op, +op, (バイナリ)

Left 

*op, /op, %op

Left 

**op

Right 

f x (関数適用)

Left 

| (パターン一致)

Right 

前置演算子 (+op, -op, %, %%, &, &&, !op, ~op)

Left 

.

Left 

f(x)

Left 

f<types>

Left 

F# はカスタム演算子のオーバーロードをサポートしています。したがって、ユーザーは独自の演算子を定義できます。前の表で、op には、任意の有効な (空の場合もあります) 演算子文字のシーケンスを指定できます (組み込みまたはユーザー定義)。つまり、この表を使用して、カスタム演算子で使用する文字のシーケンスを決定し、目的のレベルの優先順位にすることができます。先頭の . 文字は、コンパイラが優先順位を判断するときに無視されます。

参照

関連項目

演算子のオーバーロード (F#)

その他の技術情報

F# 言語リファレンス