キーワード リファレンス

このトピックでは、F# 言語のすべてのキーワードに関する情報へのリンクを示します。

F# キーワード テーブル

次の表では、F# のすべてのキーワードを、簡単な説明および詳細情報が記載されている関連トピックへのリンクと共に、アルファベット順に示します。

キーワード Link 説明
abstract [メンバー]

抽象クラス
宣言された型に実装がないメソッド、または既定の実装がある仮想のメソッドを示します。
and let バインド

レコード

[メンバー]

制約
相互に再帰的なバインディングとレコード、プロパティの宣言、およびジェネリック パラメーターの複数の制約に使用します。
as クラス

パターン一致
現在のクラス オブジェクトにオブジェクト名を指定するために使用します。 パターン マッチ内のパターン全体に名前を指定するためにも使用します。
assert アサーション デバッグ中のコードの検証に使用します。
base クラス

継承
基底クラス オブジェクトの名前として使用します。
begin 冗語構文 冗語構文で、コード ブロックの先頭を示します。
class クラス 冗語構文で、クラス定義の始まりを示します。
default [メンバー] 抽象メソッドの実装を示します。抽象メソッドの宣言と同時に使用して仮想メソッドを作成します。
delegate デリゲート デリゲートの宣言に使用します。
do do 束縛

ループ: for...to

ループ: for...in

ループ: while...do
ループ コンストラクト、または命令型コードの実行に使用します。
done 冗語構文 冗語構文で、ループ式のコード ブロックの末尾を示します。
downcast キャストと変換 継承チェーン内の下位の型に変換するために使用します。
downto ループ: for...to for 式で、逆方向にカウントするときに使用します。
elif 条件式: if...then...else 条件分岐で使用します。 else if の短い形式。
else 条件式: if...then...else 条件分岐で使用します。
end 構造体

判別共用体

レコード

型拡張

冗語構文
型定義や型拡張で、メンバー定義セクションの末尾を示します。

冗語構文では、begin キーワードで始まるコード ブロックの末尾を示すために使用します。
exception 例外処理

例外の種類
例外の種類の宣言に使用します。
extern 外部関数 宣言されたプログラム要素が別のバイナリまたはアセンブリで定義されていることを示します。
false プリミティブ型 ブール型のリテラルとして使用します。
finally 例外: try...finally 例外が発生するかどうかに関係なく実行されるコード ブロックを開始するために、try と一緒に使用します。
fixed 固定 ガベージ コレクションが行われないように、スタック上のポインターを "固定" するために使用されます。
for ループ: for...to

ループ: for...in 式
ループ コンストラクトで使用します。
fun ラムダ式: fun キーワード ラムダ式で使用し、匿名関数とも呼ばれます。
function match 式

ラムダ式: fun キーワード
単一の引数でパターン マッチングを持つラムダ式で fun キーワードと match 式の代わりに省略形として使用します。
global 名前空間 最上位の .NET 名前空間を参照するために使用します。
if 条件式: if...then...else 条件分岐のコンストラクトで使用します。
in ループ: for...in 式

冗語構文
冗語構文で、式のバインディングを分離するためにシーケンス式に使用します。
inherit 継承 基底クラスまたは基底インターフェイスを指定するために使用します。
inline 関数

インライン関数
呼び出し元のコードに直接統合する必要のある関数を示すために使用します。
interface インターフェイス インターフェイスの宣言と実装に使用します。
internal アクセス制御 アセンブリの外部では表示されず、内部でのみ表示されるメンバーを指定するために使用します。
lazy 遅延式 結果が必要な場合にのみ実行する式を指定するために使用します。
let let バインド 値または関数への名前の関連付けまたはバインドに使用します。
let! 非同期式

タスク式

コンピュテーション式
名前を非同期計算の結果にバインドするために使用します。または、他のコンピュテーション式で、名前を計算型の結果にバインドするために使用します。
match match 式 値をパターンと比較して分岐するために使用します。
match! コンピュテーション式 コンピュテーション式およびその結果でのパターン マッチへの呼び出しをインライン化するために使用されます。
member [メンバー] オブジェクトの種類のプロパティまたはメソッドの宣言に使用します。
module モジュール 関連する型、値、関数のグループに名前を関連付け、その他のコードと論理的に分離するために使用します。
mutable let 束縛 変更可能な値である変数の宣言に使用します。
namespace 名前空間 関連する型とモジュールのグループに名前を関連付け、その他のコードと論理的に分離するために使用します。
new コンストラクター

制約
オブジェクトを作成または作成可能なコンストラクターの宣言、定義、起動に使用します。

ジェネリック パラメーターの制約でも、型が特定のコンストラクターを持つ必要があることを示すために使用します。
not シンボルと演算子のリファレンス

制約
実際にはキーワードではありません。 ただし、not struct という組み合わせでジェネリック パラメーターの制約として使用します。
null null 値

制約
オブジェクトがないことを示します。

ジェネリック パラメーターの制約にも使用します。
of 判別共用体

デリゲート

例外の種類
判別共同体で値のカテゴリの種類を示し、デリゲート宣言と例外宣言でも使用します。
open インポート宣言: open キーワード 修飾子を使用せずに名前空間またはモジュールのコンテンツを利用可能にするために使用します。
or シンボルと演算子のリファレンス

制約
ブール値の or 演算子としてブール条件で使用します。 || と同じ意味です。

メンバー制約でも使用します。
override [メンバー] 基本バージョンと異なる抽象メソッドまたは仮想メソッドのバージョンの実装に使用します。
private アクセス制御 メンバーに対して、同じ型やモジュールのコードへのアクセスを制限します。
public アクセス制御 型の外部からのメンバーに対して、アクセスを許可します。
rec 関数 関数が再帰的であることを示すために使用します。
return コンピュテーション式

非同期式

タスク式
コンピュテーション式の結果として指定する値を示すために使用します。
return! コンピュテーション式

非同期式

タスク式
評価時に、含んでいるコンピュテーション式の結果を提供するコンピュテーション式を示すために使用されます。
select クエリ式 クエリ式でどのフィールドまたは列を抽出するかを指定するために使用します。 これはコンテキスト キーワードであり、実際には予約語ではなく、適切なコンテキストでキーワードとしてのみ動作します。
static [メンバー] 型のインスタンスなしで呼び出すことのできるメソッドまたはプロパティ、または型のすべてのインスタンスで共有される値メンバーを示すために使用します。
struct 構造体

タプル

制約
構造体型の宣言に使用します。

構造体のタプルを指定するために使用します。

ジェネリック パラメーターの制約にも使用します。

モジュール定義の OCaml の互換性を保つために使用します。
then 条件式: if...then...else

コンストラクター
条件式で使用します。

オブジェクトの構築後の副作用の実行にも使用します。
to ループ: for...to for ループで範囲を示します。
true プリミティブ型 ブール型のリテラルとして使用します。
try 例外: try...with 式

例外: try...finally 式
例外を生成する可能性があるコード ブロックを開始するために使用します。 with または finally と一緒に使用します。
type F# の型

クラス

レコード

構造体

列挙型

判別共用体

型略称

測定単位
クラス、レコード、構造体、判別された共同体、列挙型、数量単位、型の省略形の宣言に使用します。
upcast キャストと変換 継承チェーン内の上位の型に変換するために使用します。
use リソースの管理: use キーワード リソースを解放するために Dispose を呼び出す必要がある値に対して、let の代わりに使用されます。
use! コンピュテーション式

非同期式

タスク式
非同期式や他のコンピュテーション式で、リソースを解放するために Dispose を呼び出す必要がある値に対して、let! の代わりに使用されます。
val 明示的なフィールド: val キーワード

シグネチャ

[メンバー]
限定された状態において、シグネチャで値を示したり、型でメンバーを宣言したりするために使用されます。
void プリミティブ型 .NET の void 型を示します。 他の .NET 言語と相互運用するときに使用します。
when 制約 パターン マッチでのブール条件 ("when ガード") で、ジェネリック型パラメーターの制約句を開始するために使用します。
while ループ: while...do ループ コンストラクトを導入します。
with match 式

オブジェクト式

レコード式のコピーと更新

型拡張

例外: try...with
パターン マッチング式で match キーワードを指定して使用します。 メンバー定義と例外ハンドラーを導入するため、オブジェクト式、レコード コピー式、および型拡張でも使用します。
yield リスト配列シーケンス リスト、配列、シーケンス式でシーケンスの値を生成します。 ほとんどの状況で暗黙的に使用されるため、通常は省略できます。
yield! コンピュテーション式

非同期式

タスク式
コンピュテーション式で、コンピュテーション式を含む結果のコレクションにそのコンピュテーション式の結果を追加します。
const 型プロバイダー 型プロバイダーでは、定数リテラルを型パラメーター引数として指定するキーワードとして const を使用できます。

次のトークンは、OCaml 言語のキーワードであるため、F# で予約されています。

  • asr
  • land
  • lor
  • lsl
  • lsr
  • lxor
  • mod
  • sig

--mlcompatibility コンパイラ オプションを使用する場合、上記のキーワードを識別子として使用できます。

次のトークンは、F# の将来の拡張のため、キーワードとして予約されています。

  • break
  • checked
  • component
  • const
  • constraint
  • continue
  • event
  • external
  • include
  • mixin
  • parallel
  • process
  • protected
  • pure
  • sealed
  • tailcall
  • trait
  • virtual

次のトークンは、いったんはキーワードとして予約されましたが、F# 4.1 で解放されたので、現在は識別子として使用できます。

キーワード 理由
method メソッドを挿入するには、member を使います。
constructor コンストラクターを挿入するには、new を使います。
atomic 2006 年頃のトランザクション メモリの流行に関連していました。 これはライブラリ定義の評価式になります
eager 不要になっています。最初は潜在的な let lazy に合わせて let eager と設計されました。
object これを予約する必要はありません。
recursive rec を使用してください。
functor F# でパラメーター化されたモジュールが追加された場合は、module M(args) = ... を使用します。
measure [<Measure>] 属性で十分です。
volatile [<Volatile>] 属性で十分です。

関連項目