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

更新 : 2010 年 10 月

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

シンボルと演算子の表

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

シンボルまたは演算子

リンク

説明

!

参照セル (F#)

計算式 (F#)

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

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

!=

該当なし。

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

"

リテラル (F#)

  • 文字列を区切ります。

#

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

柔軟な型 (F#)

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

  • 型で使用した場合は、柔軟な型を示し、型とその派生型のいずれかを指します。

$

詳細情報はありません。

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

%

算術演算子 (F#)

コード引用符 (F#)

  • 整数の剰余を計算します。

  • 引用符をスプライスするために使用します。

&

match 式 (F#)

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

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

&&

ブール演算子 (F#)

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

&&&

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

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

'

リテラル (F#)

自動汎化 (F#)

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

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

``...``

詳細情報はありません。

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

( )

unit 型 (F#)

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

(...)

組 (F#)

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

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

  • 組を区切ります。

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

(*...*)

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

(|...|)

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

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

*

算術演算子 (F#)

組 (F#)

単位 (F#)

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

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

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

**

算術演算子 (F#)

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

+

算術演算子 (F#)

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

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

,

組 (F#)

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

-

算術演算子 (F#)

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

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

->

関数 (F#)

match 式 (F#)

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

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

  • match 式で使用されます。

.

メンバー (F#)

プリミティブ型 (F#)

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

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

..

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

  • 範囲を指定します。

.. ..

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

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

.[...]

配列 (F#)

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

/

算術演算子 (F#)

単位 (F#)

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

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

//

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

///

XML ドキュメント (F#)

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

:

関数 (F#)

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

::

リスト (F#)

match 式 (F#)

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

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

:=

参照セル (F#)

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

:>

キャストと変換 (F#)

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

:?

match 式 (F#)

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

:?>

キャストと変換 (F#)

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

;

詳細な構文 (F#)

リスト (F#)

レコード (F#)

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

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

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

<

算術演算子 (F#)

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

<<

関数 (F#)

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

<<<

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

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

<-

値 (F#)

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

<...>

自動汎化 (F#)

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

<>

算術演算子 (F#)

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

<=

算術演算子 (F#)

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

<|

関数 (F#)

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

<@...@>

コード引用符 (F#)

  • 型指定されたコードの引用符を区切ります。

<@@...@@>

コード引用符 (F#)

  • 型指定されていないコードの引用符を区切ります。

=

算術演算子 (F#)

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

==

該当なし。

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

>

算術演算子 (F#)

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

>>

関数 (F#)

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

>>>

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

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

>=

算術演算子 (F#)

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

?

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

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

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

? ... <- ...

詳細情報はありません。

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

@

リスト (F#)

文字列 (F#)

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

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

[...]

リスト (F#)

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

[|...|]

配列 (F#)

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

[<...>]

属性 (F#)

  • 属性を区切ります。

\

文字列 (F#)

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

^

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

文字列 (F#)

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

  • 文字列を連結します。

^^^

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

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

_

match 式 (F#)

ジェネリック (F#)

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

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

`

自動汎化 (F#)

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

{...}

シーケンス (F#)

レコード (F#)

  • シーケンス式と計算式を区切ります。

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

|

match 式 (F#)

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

||

ブール演算子 (F#)

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

|||

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

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

|>

関数 (F#)

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

~~

演算子のオーバーロード (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# 言語リファレンス

履歴の変更

日付

履歴

理由

2010 年 10 月

等値演算子と非等値演算子に関する情報を追加。

情報の拡充

2011 年 4 月

優先順位の表にビット処理演算子を追加。

カスタマー フィードバック