シンボルと演算子のリファレンスSymbol and Operator Reference

注意

この記事の API リファレンスのリンクをクリックすると MSDN に移動します。The API reference links in this article will take you to MSDN. docs.microsoft.com API リファレンスは完全ではありません。The docs.microsoft.com API reference is not complete.

このトピックでは、F# 言語で使用するシンボルと演算子の表を示します。This topic includes a table of symbols and operators that are used in the F# language.

シンボルと演算子の表Table of Symbols and Operators

次の表では、F# 言語で使用されるシンボルについて説明し、より詳しい情報が提供されるトピックへのリンクと、シンボルの使用方法の一部の簡単な説明を示します。The following table describes symbols used in the F# language, provides links to topics that provide more information, and provides a brief description of some of the uses of the symbol. シンボルは、ASCII 文字セットの順序に従って並べられています。Symbols are ordered according to the ASCII character set ordering.

シンボルまたは演算子Symbol or operator リンクLinks 説明Description
! 参照セルReference Cells

コンピュテーション式Computation Expressions
  • 参照セルを逆参照します。Dereferences a reference cell.
  • キーワードの後に付いて、ワークフローで制御されるキーワードの動作の変更済みバージョンを示します。After a keyword, indicates a modified version of the keyword's behavior as controlled by a workflow.
!= 該当しない。Not applicable.
  • F# では使用されません。Not used in F#. 非等値演算には <> を使用します。Use <> for inequality operations.
" リテラルLiterals

文字列Strings
  • テキスト文字列を区切ります。Delimits a text string.
""" 文字列Strings 逐語的テキスト文字列を区切ります。Delimits a verbatim text string. 文字列内で単一引用符を使用することで引用符文字を示すことができる @"..." とは異なります。Differs from @"..." in that a you can indicate a quotation mark character by using a single quote in the string.
# コンパイラ ディレクティブCompiler Directives

フレキシブル型Flexible Types
  • #light のように、プリプロセッサまたはコンパイラ ディレクティブの前に付けられます。Prefixes a preprocessor or compiler directive, such as #light.
  • 型で使用されている場合は、フレキシブル型を示します。これは、型またはその派生型のいずれかを指します。When used with a type, indicates a flexible type, which refers to a type or any one of its derived types.
$ 詳細情報はありません。No more information available.
  • コンパイラで生成された特定の変数名と関数名に、内部的に使用されます。Used internally for certain compiler-generated variable and function names.
% 算術演算子Arithmetic Operators

コード クォートCode Quotations
  • 整数の剰余を計算します。Computes the integer remainder.
  • 型指定されたコード クォートに式をスプライスするために使用されます。Used for splicing expressions into typed code quotations.
%% コード クォートCode Quotations
  • 型指定されていないコード クォートに式をスプライスするために使用されます。Used for splicing expressions into untyped code quotations.
%? Null 許容の演算子Nullable Operators
  • 右辺が null 許容型である場合に、整数の剰余を計算します。Computes the integer remainder, when the right side is a nullable type.
& match 式Match Expressions
  • 他の言語と相互運用するときに使用するための、変更可能な値のアドレスを計算します。Computes the address of a mutable value, for use when interoperating with other languages.
  • AND パターンで使用されます。Used in AND patterns.
&& ブール演算子Boolean Operators
  • ブール値の AND 演算を実行します。Computes the Boolean AND operation.
&&& ビット処理演算子Bitwise Operators
  • ビットごとの AND 演算を実行します。Computes the bitwise AND operation.
' リテラルLiterals

自動ジェネリック化Automatic Generalization
  • 1 文字のリテラルを区切ります。Delimits a single-character literal.
  • ジェネリック型パラメーターを示します。Indicates a generic type parameter.
``...`` 詳細情報はありません。No more information available.
  • 言語のキーワードなど、区切らなければ有効な識別子にならない識別子を区切ります。Delimits an identifier that would otherwise not be a legal identifier, such as a language keyword.
( ) Unit 型Unit Type
  • unit 型の 1 つの値を表します。Represents the single value of the unit type.
(...) タプルTuples

演算子のオーバーロードOperator Overloading
  • 式が評価される順序を示します。Indicates the order in which expressions are evaluated.
  • タプルを区切ります。Delimits a tuple.
  • 演算子の定義で使用されます。Used in operator definitions.
(*...*)
  • 複数行にわたる可能性のあるコメントを区切ります。Delimits a comment that could span multiple lines.
(|...|) アクティブ パターンActive Patterns
  • アクティブ パターンを区切ります。Delimits an active pattern. バナナ クリップとも呼ばれます。Also called banana clips.
* 算術演算子Arithmetic Operators

タプルTuples

測定単位Units of Measure
  • 二項演算子として使用されている場合は、左辺と右辺を乗算します。When used as a binary operator, multiplies the left and right sides.
  • 型では、タプルのペアリングを示します。In types, indicates pairing in a tuple.
  • 測定単位の型で使用されます。Used in units of measure types.
*? Null 許容の演算子Nullable Operators
  • 右辺が null 許容型である場合は、左辺と右辺を乗算します。Multiplies the left and right sides, when the right side is a nullable type.
** 算術演算子Arithmetic Operators
  • 指数演算を実行します (x ** yxy 乗を意味します)。Computes the exponentiation operation (x ** y means x to the power of y).
+ 算術演算子Arithmetic Operators
  • 二項演算子として使用されている場合は、左辺と右辺を加算します。When used as a binary operator, adds the left and right sides.
  • 単項演算子として使用されている場合は、正数を示します。When used as a unary operator, indicates a positive quantity. (正式には、同じ値を符号を変更しないで生成します。)(Formally, it produces the same value with the sign unchanged.)
+? Null 許容の演算子Nullable Operators
  • 右辺が null 許容型である場合は、左辺と右辺を加算します。Adds the left and right sides, when the right side is a nullable type.
, タプルTuples
  • タプルの要素または型パラメーターを区切ります。Separates the elements of a tuple, or type parameters.
- 算術演算子Arithmetic Operators
  • 二項演算子として使用されている場合は、左辺から右辺を減算します。When used as a binary operator, subtracts the right side from the left side.
  • 単項演算子として使用されている場合は、否定演算を実行します。When used as a unary operator, performs a negation operation.
-? Null 許容の演算子Nullable Operators
  • 右辺が null 許容型である場合は、左辺から右辺を減算します。Subtracts the right side from the left side, when the right side is a nullable type.
-> 関数Functions

match 式Match Expressions
  • 関数の型では、引数と戻り値を区切ります。In function types, delimits arguments and return values.
  • (シーケンス式の) 式を生成します。yield キーワードと等価です。Yields an expression (in sequence expressions); equivalent to the yield keyword.
  • match 式で使用されます。Used in match expressions
. メンバーMembers

プリミティブ型Primitive Types
  • メンバーにアクセスし、完全修飾名の個々の名前を区切ります。Accesses a member, and separates individual names in a fully qualified name.
  • 浮動小数点数の小数点を示します。Specifies a decimal point in floating point numbers.
.. ループ: for...inLoops: for...in Expression
  • 範囲を指定します。Specifies a range.
.. .. ループ: for...inLoops: for...in Expression
  • インクリメントと共に範囲を指定します。Specifies a range together with an increment.
.[...] 配列Arrays
  • 配列要素にアクセスします。Accesses an array element.
/ 算術演算子Arithmetic Operators

測定単位Units of Measure
  • 左辺 (分子) を右辺 (分母) で除算します。Divides the left side (numerator) by the right side (denominator).
  • 測定単位の型で使用されます。Used in units of measure types.
/? Null 許容の演算子Nullable Operators
  • 右辺が null 許容型である場合は、左辺を右辺で除算します。Divides the left side by the right side, when the right side is a nullable type.
//
  • 単一行コメントの先頭を示します。Indicates the beginning of a single-line comment.
/// XML に関するドキュメントXML Documentation
  • XML コメントを示します。Indicates an XML comment.
: 関数Functions
  • 型注釈では、パラメーター名またはメンバー名とその型を区切ります。In a type annotation, separates a parameter or member name from its type.
:: リストLists

match 式Match Expressions
  • リストを作成します。Creates a list. 左辺の要素が右辺のリストに追加されます。The element on the left side is prepended to the list on the right side.
  • リストの各部分を区切るためにパターン マッチで使用されます。Used in pattern matching to separate the parts of a list.
:= 参照セルReference Cells
  • 参照セルに値を割り当てます。Assigns a value to a reference cell.
:> キャストと変換Casting and Conversions
  • 型を階層の上位の型に変換します。Converts a type to type that is higher in the hierarchy.
:? match 式Match Expressions
  • 値が指定した型と一致する (サブタイプである場合を含む) 場合は true を返します。それ以外の場合は false を返します (型テスト演算子)。Returns true if the value matches the specified type (including if it is a subtype); otherwise, returns false (type test operator).
:?> キャストと変換Casting and Conversions
  • 型を階層の下位にある型に変換します。Converts a type to a type that is lower in the hierarchy.
; 冗語構文Verbose Syntax

リストLists

レコードRecords
  • 式を区切ります (ほとんどの場合、冗語構文で使用されます)。Separates expressions (used mostly in verbose syntax).
  • リストの要素を区切ります。Separates elements of a list.
  • レコードのフィールドを区切ります。Separates fields of a record.
< 算術演算子Arithmetic Operators
  • 小なり演算を実行します。Computes the less-than operation.
<? Null 許容の演算子Nullable Operators 右辺が null 許容型である場合は、小なり演算を実行します。Computes the less than operation, when the right side is a nullable type.
<< 関数Functions
  • 2 つの関数を逆順で合成します。2 つ目の関数が先に実行されます (後方合成演算子)。Composes two functions in reverse order; the second one is executed first (backward composition operator).
<<< ビット処理演算子Bitwise Operators
  • 左辺にある数のビットを、右辺に指定されたビット数だけ左にシフトします。Shifts bits in the quantity on the left side to the left by the number of bits specified on the right side.
<- Values
  • 値を変数に代入します。Assigns a value to a variable.
<...> 自動ジェネリック化Automatic Generalization
  • 型パラメーターを区切ります。Delimits type parameters.
<> 算術演算子Arithmetic Operators
  • 左辺が右辺と等しくない場合は true を返します。それ以外の場合は false を返します。Returns true if the left side is not equal to the right side; otherwise, returns false.
<>? Null 許容の演算子Nullable Operators
  • 右辺が null 許容型である場合は、"等しくない" 演算を実行します。Computes the "not equal" operation when the right side is a nullable type.
<= 算術演算子Arithmetic Operators
  • 左辺が右辺以下である場合は true を返します。それ以外の場合は false を返します。Returns true if the left side is less than or equal to the right side; otherwise, returns false.
<=? Null 許容の演算子Nullable Operators
  • 右辺が null 許容型である場合は、"以下" 演算を実行します。Computes the "less than or equal to" operation when the right side is a nullable type.
<| 関数Functions
  • 右辺の式の結果を左辺の関数に渡します (後方パイプ演算子)。Passes the result of the expression on the right side to the function on left side (backward pipe operator).
<|| Operators.( <|| )<'T1,'T2,'U> 関数Operators.( <|| )<'T1,'T2,'U> Function
  • 右辺にある 2 つの引数のタプルを左辺の関数に渡します。Passes the tuple of two arguments on the right side to the function on left side.
<||| Operators.( <||| )<'T1,'T2,'T3,'U> 関数Operators.( <||| )<'T1,'T2,'T3,'U> Function
  • 右辺にある 3 つの引数のタプルを左辺の関数に渡します。Passes the tuple of three arguments on the right side to the function on left side.
<@...@> コード クォートCode Quotations
  • 型指定されたコード クォートを区切ります。Delimits a typed code quotation.
<@@...@@> コード クォートCode Quotations
  • 型指定されていないコード クォートを区切ります。Delimits an untyped code quotation.
= 算術演算子Arithmetic Operators
  • 左辺が右辺と等しい場合は true を返します。それ以外の場合は false を返します。Returns true if the left side is equal to the right side; otherwise, returns false.
=? Null 許容の演算子Nullable Operators
  • 右辺が null 許容型である場合は、"等しい" 演算を実行します。Computes the "equal" operation when the right side is a nullable type.
== 該当しない。Not applicable.
  • F# では使用されません。Not used in F#. 等値演算には = を使用します。Use = for equality operations.
> 算術演算子Arithmetic Operators
  • 左辺が右辺より大きい場合は true を返します。それ以外の場合は false を返します。Returns true if the left side is greater than the right side; otherwise, returns false.
>? Null 許容の演算子Nullable Operators
  • 右辺が null 許容型である場合は、"より大きい" 演算を実行します。Computes the "greater than" operation when the right side is a nullable type.
>> 関数Functions
  • 2 つの関数を合成します (前方合成演算子)。Composes two functions (forward composition operator).
>>> ビット処理演算子Bitwise Operators
  • 左辺にある数のビットを、右辺に指定された桁数だけ右にシフトします。Shifts bits in the quantity on the left side to the right by the number of places specified on the right side.
>= 算術演算子Arithmetic Operators
  • 左辺が右辺以上の場合に true を返します。それ以外の場合は falseを返します。Returns true if the left side is greater than or equal to the right side; otherwise, returns false.
>=? Null 許容の演算子Nullable Operators
  • 右辺が null 許容型である場合は、"以上" 演算を実行します。Computes the "greater than or equal" operation when the right side is a nullable type.
? パラメーターと引数Parameters and Arguments
  • 省略可能な引数を指定します。Specifies an optional argument.
  • 動的メソッドや動的プロパティの呼び出しのための演算子として使用されます。Used as an operator for dynamic method and property calls. 独自の実装を提供する必要があります。You must provide your own implementation.
? ... <- ... 詳細情報はありません。No more information available.
  • 動的プロパティを設定するための演算子として使用されます。Used as an operator for setting dynamic properties. 独自の実装を提供する必要があります。You must provide your own implementation.
?>=?>?<=?<?=?<>?+?-?*?/?>=, ?>, ?<=, ?<, ?=, ?<>, ?+, ?-, ?*, ?/ Null 許容の演算子Nullable Operators
  • null 許容型が左辺にある場合、Equivalent to the corresponding operators without the ? ? プレフィックスがない、対応する演算子と等価です。prefix, where a nullable type is on the left.
>=?>?<=?<?=?<>?+?-?*?/?>=?, >?, <=?, <?, =?, <>?, +?, -?, *?, /? Null 許容の演算子Nullable Operators
  • null 許容型が左辺にある場合、Equivalent to the corresponding operators without the ? ? サフィックスがない、対応する演算子と等価です。suffix, where a nullable type is on the right.
?>=??>??<=??<??=??<>??+??-??*??/??>=?, ?>?, ?<=?, ?<?, ?=?, ?<>?, ?+?, ?-?, ?*?, ?/? Null 許容の演算子Nullable Operators
  • 両辺が null 許容型である場合、前後に疑問符がない、対応する演算子と等価です。Equivalent to the corresponding operators without the surrounding question marks, where both sides are nullable types.
@ リストLists

文字列Strings
  • 2 つのリストを連結します。Concatenates two lists.
  • 文字列リテラルの前にある場合、文字列は逐語的に解釈され、エスケープ文字は解釈されないことを示します。When placed before a string literal, indicates that the string is to be interpreted verbatim, with no interpretation of escape characters.
[...] リストLists
  • リストの要素を区切ります。Delimits the elements of a list.
[|...|] 配列Arrays
  • 配列の要素を区切ります。Delimits the elements of an array.
[<...>] 属性Attributes
  • 属性を区切ります。Delimits an attribute.
\ 文字列Strings
  • 次の文字をエスケープします。文字や文字列リテラルで使用されます。Escapes the next character; used in character and string literals.
^ 静的に解決される型パラメーターStatically Resolved Type Parameters

文字列Strings
  • 実行時ではなくコンパイル時に解決する必要がある型パラメーターを指定します。Specifies type parameters that must be resolved at compile time, not at runtime.
  • 文字列を連結します。Concatenates strings.
^^^ ビット処理演算子Bitwise Operators
  • ビットごとの排他的 OR 演算を実行します。Computes the bitwise exclusive OR operation.
_ match 式Match Expressions

ジェネリックGenerics
  • ワイルドカード パターンを示します。Indicates a wildcard pattern.
  • 匿名ジェネリック パラメーターを指定します。Specifies an anonymous generic parameter.
` 自動ジェネリック化Automatic Generalization
  • ジェネリック型パラメーターを示すために内部的に使用されます。Used internally to indicate a generic type parameter.
{...} シーケンスSequences

レコードRecords
  • シーケンス式とコンピュテーション式を区切ります。Delimits sequence expressions and computation expressions.
  • レコードの定義で使用されます。Used in record definitions.
| match 式Match Expressions
  • 個々の一致ケース、個々の判別共用体ケース、および列挙値を区切ります。Delimits individual match cases, individual discriminated union cases, and enumeration values.
|| ブール演算子Boolean Operators
  • ブール型の OR 演算を実行します。Computes the Boolean OR operation.
||| ビット処理演算子Bitwise Operators
  • ビットごとの OR 演算を実行します。Computes the bitwise OR operation.
|> 関数Functions
  • 左辺の結果を関数を右辺の関数に渡します (前方パイプ演算子)。Passes the result of the left side to the function on the right side (forward pipe operator).
||> Operators.( ||> )<'T1,'T2,'U> 関数Operators.( ||> )<'T1,'T2,'U> Function
  • 左辺の 2 つの引数のタプルを右辺の関数に渡します。Passes the tuple of two arguments on the left side to the function on the right side.
|||> Operators.( |||> )<'T1,'T2,'T3,'U> 関数Operators.( |||> )<'T1,'T2,'T3,'U> Function
  • 左辺の 3 つの引数のタプルを右辺の関数に渡します。Passes the tuple of three arguments on the left side to the function on the right side.
~~ 演算子のオーバーロードOperator Overloading
  • 単項否定演算子のオーバー ロードを宣言するために使用されます。Used to declare an overload for the unary negation operator.
~~~ ビット処理演算子Bitwise Operators
  • ビットごとの NOT 演算を実行します。Computes the bitwise NOT operation.
~- 演算子のオーバーロードOperator Overloading
  • 単項マイナス演算子のオーバー ロードを宣言するために使用されます。Used to declare an overload for the unary minus operator.
~+ 演算子のオーバーロードOperator Overloading
  • 単項プラス演算子のオーバー ロードを宣言するために使用されます。Used to declare an overload for the unary plus operator.

演算子の優先順位Operator Precedence

次の表に、F# 言語で使用される演算子とその他の式のキーワードの優先順位を、低いものから順に示します。The following table shows the order of precedence of operators and other expression keywords in the F# language, in order from lowest precedence to the highest precedence. 該当する場合には、結合規則も示します。Also listed is the associativity, if applicable.

演算子Operator 結合規則Associativity
as 権限Right
when 権限Right
| (パイプ)| (pipe) Left
; 権限Right
let 非結合Nonassociative
function, fun, match, tryfunction, fun, match, try 非結合Nonassociative
if 非結合Nonassociative
not 権限Right
-> 権限Right
:= 権限Right
, 非結合Nonassociative
or||or, || Left
&&&&, && Left
:>:?>:>, :?> 権限Right
<op>op=|op&op&<op, >op, =, |op, &op, &

(<<<>>>|||&&& を含む)(including <<<, >>>, |||, &&&)
Left
^op^op

(^^^ を含む)(including ^^^)
権限Right
:: 権限Right
:? 非結合Not associative
-op+op-op, +op これらのシンボルを挿入辞として使用するために適用Applies to infix uses of these symbols
*op/op%op*op, /op, %op Left
**op**op 権限Right
f x (関数適用)f x (function application) Left
| (パターン一致)| (pattern match) 権限Right
前置演算子 (+op-op%%%&&&!op~op)prefix operators (+op, -op, %, %%, &, &&, !op, ~op) Left
. Left
f(x) Left
f<types>f<types> Left

F# はカスタム演算子のオーバー ロードをサポートしています。F# supports custom operator overloading. これは、独自の演算子を定義できることを意味します。This means that you can define your own operators. 上記の表では、op に、組み込みまたはユーザー定義の有効な (場合によっては空の) 演算子文字シーケンスを指定できます。In the previous table, op can be any valid (possibly empty) sequence of operator characters, either built-in or user-defined. つまり、この表を使用して、カスタム演算子に使用する文字のシーケンスを決定し、目的のレベルの優先順位を実現することができます。Thus, you can use this table to determine what sequence of characters to use for a custom operator to achieve the desired level of precedence. 先行する . 文字は、コンパイラが優先順位を決定する場合は無視されます。Leading . characters are ignored when the compiler determines precedence.

関連項目See also