F# 言語リファレンス

このセクションでは、.NET プラットフォーム向けのマルチパラダイム プログラミング言語である F# 言語のリファレンスを示します。 F# 言語は、関数型、オブジェクト指向型、および命令型の各プログラミング モデルをサポートします。

F# のトークン

F# でトークンとして使用されるキーワード、シンボル、およびリテラルを表にまとめたリファレンス トピックを次の表に示します。

タイトル

説明

キーワード リファレンス (F#)

F# 言語のすべてのキーワードに関する情報へのリンクを示します。

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

F# 言語で使用されるシンボルと演算子の一覧を示します。

リテラル (F#)

F# のリテラル値の構文と、F# のリテラルの型情報を指定する方法を示します。

F# 言語の概念

言語の概念について説明したリファレンス トピックを次の表に示します。

タイトル

説明

関数 (F#)

関数は、あらゆるプログラミング言語においてプログラムの実行の基本となる単位です。 他の言語の場合と同様に、F# の関数にもそれぞれ名前と本体があり、パラメーターや引数を受け取ることができます。 F# ではさらに、関数型プログラミング構成要素もサポートしています。たとえば、関数を値として処理したり、名前のない関数を式で使用したりできます。また、関数の合成による新しい関数の作成、カリー化関数、関数の引数の部分適用による関数の暗黙の定義などがサポートされます。

F# の型

F# で使用される型と、それらを指定および記述する方法について説明します。

型の推論 (F#)

F# コンパイラが値、変数、パラメーター、および戻り値の型を推論する方法について説明します。

自動汎化 (F#)

F# の汎用的な構成要素について説明します。

継承 (F#)

継承について説明します。継承は、"is-a" 関係 (サブタイプ) をモデル化するためにオブジェクト指向プログラミングで使用されます。

メンバー (F#)

F# のオブジェクトの種類のメンバーについて説明します。

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

パラメーターを定義したり、関数、メソッド、およびプロパティに引数を渡したりするための言語サポートについて説明します。 参照渡しの方法についても説明します。

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

クラス型またはレコード型の算術演算子をオーバーロードする方法と、グローバル レベルで算術演算子をオーバーロードする方法について説明します。

キャストと変換 (F#)

F# での型変換のサポートについて説明します。

アクセス制御 (F#)

F# でのアクセス制御について説明します。 アクセス制御とは、特定のプログラム要素 (型、メソッド、関数など) を使用できるクライアントを宣言することです。

パターン一致 (F#)

パターンについて説明します。パターンは、F# 言語全体で使用される入力データの変換規則です。データをパターンと比較したり、データを構成要素に分解したり、さまざまな方法でデータから情報を抽出したりするために使用されます。

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

アクティブなパターンについて説明します。 アクティブなパターンでは、入力データを分割する名前付きパーティションを定義できます。 アクティブなパターンを使用すると、パーティションごとにカスタマイズした方法でデータを分解できます。

アサーション (F#)

assert 式について説明します。これは、式のテストに使用できるデバッグ機能です。 デバッグ モードでエラーが発生すると、アサーションによってシステム エラーのダイアログ ボックスが生成されます。

例外処理 (F#)

F# 言語での例外処理のサポートについて説明します。

属性 (F#)

属性について説明します。属性により、プログラミング構造にメタデータを適用できます。

リソースの管理: use キーワード (F#)

use キーワードと using キーワードについて説明します。これらを使用して、リソースの初期化と解放を制御できます。

名前空間 (F#)

F# での名前空間のサポートについて説明します。 名前空間を使用すると、プログラム要素のグループに名前を割り当てて、関連する機能の区分にコードを編成することができます。

モジュール (F#)

モジュールについて説明します。 F# では、モジュールとは、プログラム内に含まれる値、型、関数値などのコードのグループです。 モジュールでコードをグループ化すると、関連するコードをまとめることができ、プログラム内で名前の競合を回避するのに役立ちます。

インポート宣言: open キーワード (F#)

open の動作について説明します。 インポート宣言では、完全修飾名を使用せずに要素を参照できるモジュールまたは名前空間を指定します。

シグネチャ (F#)

シグネチャとシグネチャ ファイルについて説明します。 シグネチャ ファイルには、F# の一連のプログラム要素 (型、名前空間、モジュールなど) のパブリック シグネチャに関する情報が格納されます。 このファイルを使用して、それらのプログラム要素のアクセシビリティを指定できます。

XML ドキュメント (F#)

XML ドキュメント コメント (トリプル スラッシュ コメントとも呼ばれます) のドキュメント ファイルを生成するためのサポートについて説明します。 他の .NET 言語と同様に、F# のコード コメントからドキュメントを作成できます。

詳細な構文 (F#)

簡易構文が有効になっていない場合の F# の構成要素の構文について説明します。 詳細な構文は、コード ファイルの先頭にある #light "off" ディレクティブで示されています。

F# の型

F# 言語でサポートされる型について説明したリファレンス トピックを次の表に示します。

タイトル

説明

値 (F#)

値について説明します。値は、特定の型を持つ変更不可の数量です。値は、整数または浮動小数点数、文字またはテキスト、リスト、シーケンス、配列、組、判別共用体、レコード、クラス型、関数値のいずれかです。

プリミティブ型 (F#)

F# 言語で使用される基本的なプリミティブ型について説明します。 また、対応する .NET 型、および各型の最小値と最大値も示します。

unit 型 (F#)

unit 型について説明します。これは、特定の値を持たないことを示す型です。unit 型には値が 1 つだけあり、他の値が存在しない場合や不要な場合のプレースホルダーとして機能します。

文字列 (F#)

F# の文字列について説明します。 string 型は、Unicode 文字のシーケンスとしての、変更不可のテキストを表します。 string は、.NET Framework の String のエイリアスです。

組 (F#)

組について説明します。組は、名前のない値の順序を指定したグループです。各値の型は異なる場合もあります。

リスト (F#)

リストについて説明します。 F# のリストは、順序が指定された、変更できない一連の要素です。これらの要素はすべて同じ型です。

オプション (F#)

オプション型について説明します。 F# のオプションは、値が存在する可能性と存在しない可能性がある場合に使用されます。 オプションには基になる型があり、その型の値を保持する場合と値がない場合があります。

シーケンス (F#)

シーケンスについて説明します。 シーケンスは、すべてが 1 つの型である論理的な一連の要素です。 シーケンスの個々の要素は必要な場合にのみ計算されるため、リテラル要素が示す数よりも少ない要素で表現されることがあります。

配列 (F#)

配列について説明します。 配列は、変更可能な連続する一連のデータ要素です。サイズは固定で、0 から始まります。型はすべて同じです。

レコード (F#)

レコードについて説明します。 レコードは、名前付きの値の単純な集合を表しており、オプションでメンバーを含みます。

判別共用体 (F#)

判別共用体について説明します。これは、さまざまな名前付きケースのうちのいずれかである可能性がある値をサポートします。値や型はそれぞれ異なる場合もあります。

列挙型 (F#)

列挙型について説明します。列挙型は、定義された一連の名前付きの値を持つ型です。 リテラルの代わりに使用すると、コードの読み取りおよび保守が容易になります。

参照セル (F#)

参照セルについて説明します。参照セルは、参照セマンティクスを持つ変更可能な変数の作成を可能にする格納場所です。

型の省略形 (F#)

型の省略形について説明します。これは型の代替名です。

クラス (F#)

クラスについて説明します。クラスは、プロパティ、メソッド、およびイベントを持つことができるオブジェクトを表す型です。

構造体 (F#)

構造体について説明します。構造体はコンパクトなオブジェクト型で、少量のデータと簡単な動作だけを含む型の場合は、クラスよりも構造体を使用した方が効率的な場合があります。

インターフェイス (F#)

インターフェイスについて説明します。インターフェイスでは、他のクラスが実装する関連メンバーのセットを指定します。

抽象クラス (F#)

抽象クラスについて説明します。抽象クラスは、一部またはすべてのメンバーを実装しないようにして、派生クラスから実装できるようにするためのクラスです。

型拡張 (F#)

型拡張について説明します。型拡張では、定義済みのオブジェクト型に新しいメンバーを追加できます。

柔軟な型 (F#)

柔軟な型について説明します。 柔軟な型の注釈は、パラメーター、変数、または値の型が、指定された型と互換性があることを示します。互換性は、クラスまたはインターフェイスのオブジェクト指向の階層における位置によって決まります。

デリゲート (F#)

デリゲートについて説明します。デリゲートとは、オブジェクトとしての関数呼び出しを表します。

単位 (F#)

測定単位について説明します。 F# の浮動小数点値には測定単位を関連付けることができます。測定単位は一般に、長さ、体積、質量などを示すために使用されます。

F# の式

F# の式について説明したトピックを次の表に示します。

タイトル

説明

条件式: if... then...else (F#)

if...then...else 式について説明します。これは、コードのさまざまな分岐を実行する機能であり、指定されたブール式に応じて異なる値に評価されます。

match 式 (F#)

match 式について説明します。この式により、式を一連のパターンと比較し、その比較に基づいて分岐を制御できます。

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

for...to 式について説明します。これは、ループ変数の値の範囲でループ内を反復処理する場合に使用します。

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

for...in 式について説明します。これは、列挙可能なコレクション (範囲表現、シーケンス、リスト、配列、または列挙型をサポートするその他の構成要素) のパターンと一致するかどうかの照合を反復処理するために使用されるループ構造です。

ループ: while...do 式 (F#)

while...do 式について説明します。これは、指定したテスト条件が true の間に反復実行 (ループ) を行う場合に使用します。

オブジェクト式 (F#)

オブジェクト式について説明します。これは、既存の基本型、インターフェイス、または一連のインターフェイスに基づいて、動的に作成される匿名のオブジェクト型の新しいインスタンスを作成する式です。

遅延計算 (F#)

遅延計算について説明します。遅延計算は、すぐには評価されず、結果が実際に必要なときに評価される計算です。

計算式 (F#)

F# の計算式について説明します。F# の計算式には、制御フローの構成要素とバインディングを使用してシーケンス化および結合できる計算を記述するための便利な構文が用意されています。 これらの計算式を使用すると、モナドの便利な構文が提供されます。モナドとは、関数型プログラムのデータ、制御、および副作用の管理に使用できる関数型プログラミングの機能です。 非同期ワークフローは計算式の一種であり、非同期の並列計算をサポートします。 詳細については、「非同期ワークフロー (F#)」を参照してください。

非同期ワークフロー (F#)

非同期ワークフローについて説明します。非同期ワークフローは、同期コードを通常記述するのと非常に近い方法で非同期コードを記述できる言語機能です。

コード引用符 (F#)

コードの引用について説明します。この言語機能を使用すると、F# のコード式をプログラムで生成して使用できます。

コンパイラでサポートされる構成要素

コンパイラでサポートされる特殊な構成要素について説明したトピックを次の表に示します。

トピック

説明

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

プロセッサ ディレクティブとコンパイラ ディレクティブについて説明します。

ソース行、ファイル、およびパスの識別子 (F#)

__LINE__、__SOURCE_DIRECTORY__、および __SOURCE_FILE__ の各識別子について説明します。これらは、コード内のソースの行番号、ディレクトリ、およびファイル名にアクセスするための組み込みの値です。

参照

その他の技術情報

Visual F#

F# コンパイラ (fsc.exe) のリファレンス