F# 言語リファレンス

このセクションは、.NET をターゲットとするマルチパラダイム プログラミング言語である F# 言語の参照となっています。 F# 言語は、関数型、オブジェクト指向、および命令型のプログラミング モデルをサポートします。

F# コア ライブラリ API リファレンス

F# コア ライブラリ (FSharp.Core) API リファレンスは、すべての F# コア ライブラリの名前空間、モジュール、型、関数のリファレンスです。

F# トークン

次の表に、F# でトークンとして使用されるキーワード、シンボル、およびリテラルを表にまとめた参照記事を示します。

Title 説明
キーワード リファレンス F# 言語のすべてのキーワードに関する情報へのリンクを示します。
シンボルと演算子のリファレンス F# 言語で使用するシンボルと演算子の表を示します。
リテラル F# のリテラル値の構文と、F# のリテラルの型情報を指定する方法を示します。

F# 言語の概念

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

Title 説明
関数 関数は、あらゆるプログラミング言語においてプログラムの実行の基本となる単位です。 他の言語の場合と同様に、F# の関数にもそれぞれ名前と本体があり、パラメーターや引数を受け取ることができます。 F# ではさらに、関数型プログラミング構成要素もサポートしています。たとえば、関数を値として処理したり、名前のない関数を式で使用したりできます。また、関数の合成による新しい関数の作成、カリー化関数、関数の引数の部分適用による関数の暗黙の定義などがサポートされます。
F# の型 F# で使用される型と、それらを指定および記述する方法について説明します。
型推論 F# コンパイラが値、変数、パラメーター、および戻り値の型を推論する方法について説明します。
自動ジェネリック化 F# のジェネリックな構成要素について説明します。
継承 継承について説明します。継承は、オブジェクト指向プログラミングで "is-a" 関係 (サブタイプ) をモデル化するために使用されます。
メンバー F# オブジェクト型のメンバーについて説明します。
パラメーターと引数 パラメーターを定義して、関数、メソッド、およびプロパティに引数を渡すのための言語サポートについて説明します。 参照渡しの方法についても説明します。
演算子のオーバーロード クラス型またはレコード型の算術演算子をオーバーロードする方法と、グローバル レベルで算術演算子をオーバーロードする方法について説明します。
キャストと変換 F# の型変換のサポートについて説明します。
アクセス制御 F# のアクセス制御について説明します。 アクセス制御とは、特定のプログラム要素 (型、メソッド、関数など) を使用できるクライアントを宣言することを意味します。
パターン一致 入力データを変換するための規則であり、F# 言語全体で使用されるパターンについて説明します。 データをパターンと比較したり、データを構成要素部分に分解したり、さまざまな方法でデータから情報を抽出したりできます。
アクティブ パターン アクティブ パターンについて説明します。 アクティブ パターンでは、入力データを分割する名前付きパーティションを定義できます。 アクティブ パターンを使用すると、パーティションごとにカスタマイズした方法でデータを分解できます。
アサーション assert 式について説明します。これは、式のテストに使用できるデバッグ機能です。 デバッグ モードでエラーが発生すると、アサーションによってシステム エラーのダイアログ ボックスが生成されます。
例外処理 F# 言語での例外処理のサポートについて説明します。
attributes 属性について説明します。属性により、プログラミング構造にメタデータを適用できます。
リソースの管理: use キーワード use キーワードと using キーワードについて説明します。これらを使用して、リソースの初期化と解放を制御できます。
namespaces F# における名前空間のサポートについて説明します。 名前空間を使用すると、プログラム要素のグループに名前を割り当てて、関連する機能の区分にコードを編成することができます。
モジュール モジュールについて説明します。 F# のモジュールは、F# プログラムにおける値、型、関数値などの F# コードのグループです。 モジュールのコードをグループ化すると、関連するコードをまとめることができ、プログラム内で名前の競合を回避するのに役立ちます
インポート宣言: open キーワード open の動作について説明します。 インポート宣言は、完全修飾名を使用せずに参照できる要素が含まれるモジュールまたは名前空間を指定します。
シグネチャ シグネチャとシグネチャ ファイルについて説明します。 シグネチャ ファイルには、型、名前空間、モジュールなど F# プログラムの一連の要素のパブリック シグネチャに関する情報が含まれています。 これらのプログラム要素のアクセシビリティを指定するために使用できます。
XML に関するドキュメント XML ドキュメント コメント (トリプル スラッシュ コメントとも呼ばれます) のドキュメント ファイルを生成するためのサポートについて説明します。 他の .NET 言語と同様に、F# のコード コメントからドキュメントを生成できます。
冗語構文 軽量構文が有効になっていない場合の F# の構成要素の構文について説明します。 冗語構文は、コード ファイルの先頭にある #light "off" ディレクティブで示されています。
プレーン テキスト形式 F# アプリケーションおよびスクリプト内で sprintf やその他のプレーン テキスト形式を使用する方法について説明します。

F# の型

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

Title 説明
値について説明します。値は、特定の型を持つ変更不可の数量です。値は、整数または浮動小数点数、文字またはテキスト、リスト、シーケンス、配列、タプル、判別共用体、レコード、クラス型、関数値のいずれかです。
基本の型 F# 言語で使用されている基礎となる基本型について説明します。 また、対応する .NET 型と各型の最小値と最大値も示します。
Unit 型 unit 型について説明します。これは、特定の値を持たないことを示す型です。unit 型には値が 1 つだけあり、他の値が存在しない場合や不要な場合のプレースホルダーとして機能します。
文字列 F# の文字列について説明します。 string 型は、Unicode 文字のシーケンスとしての、変更不可のテキストを表します。 string は、.NET Framework の System.String のエイリアスです。
タプル タプルについて説明します。タプルは、名前のない値の順序を指定したグループです。各値の型は異なる場合もあります。
F# コレクション型 配列、リスト、シーケンス (seq)、マップ、およびセットの型を含む、F# 機能のコレクション型の概要を示します。
リスト リストについて説明します。 F# のリストは、順序が指定されており変更できない一連のすべて同じ型の要素です。
Options オプション型について説明します。 F# のオプションは、値が存在する場合にも存在しない場合にも使用されます。 オプションには基になる型があり、その型の値を保持する場合と値がない場合があります。
シーケンス シーケンスについて説明します。 シーケンスは、すべてが 1 つの型である論理的な一連の要素です。 シーケンスの個々の要素は必要な場合にのみ計算されるため、リテラル要素が示す数よりも少ない要素で表現されることがあります。
配列 配列について説明します。 配列は、0 から始まる一連のデータ要素の、固定サイズの変更可能なシーケンスで、その型はすべて同じです。
レコード レコードについて説明します。 レコードは、名前付きの値の単純な集合を表しており、オプションでメンバーを含みます。
判別共用体 判別共用体について説明します。これは、さまざまな名前付きケースのうちのいずれかである可能性がある値をサポートします。値や型はそれぞれ異なる場合もあります。
列挙型 列挙型について説明します。列挙型は、定義された一連の名前付きの値を持つ型です。 リテラルの代わりに使用すると、コードの読み取りおよび保守が容易になります。
参照セル 参照セルについて説明します。参照セルは、参照セマンティクスを持つ変更可能な値を作成できる格納場所です。
型略称 型略称について説明します。型略称は、型の代替名です。
クラス クラスについて説明します。クラスは、プロパティ、メソッド、およびイベントを持つことができるオブジェクトを表す型です。
構造体 構造体について説明します。構造体はコンパクトなオブジェクト型であり、データが少量で動作が単純な型のクラスよりも効率が良い場合があります。
インターフェイス インターフェイスについて説明します。インターフェイスでは、他のクラスが実装する関連メンバーのセットを指定します。
抽象クラス 抽象クラスについて説明します。抽象クラスは、一部またはすべてのメンバーを実装しないようにして、派生クラスから実装できるようにするためのクラスです。
型拡張 型拡張について説明します。型拡張を使用すると、定義済みのオブジェクト型に新しいメンバーを追加できます。
フレキシブル型 フレキシブル型について説明します。 フレキシブル型の注釈は、パラメーター、変数、または値の型が、指定された型と互換性があることを示します。互換性は、クラスまたはインターフェイスのオブジェクト指向の階層における位置によって決まります。
デリゲート デリゲートについて説明します。デリゲートとは、オブジェクトとしての関数呼び出しを表します。
測定単位 測定単位について説明します。 F# の浮動小数点値には測定単位を関連付けることができます。測定単位は一般に、長さ、体積、質量などを示すために使用されます。
型プロバイダー 型プロバイダーについて説明します。組み込みの型プロバイダーを使用してデータベースや Web サービスにアクセスする方法に関するチュートリアルへのリンクを提供します。

F# の式

次の表に、F# の式を説明するトピックの一覧を示します。

Title 説明
条件式: if...then...else if...then...else 式について説明します。これは、コードのさまざまな分岐を実行する機能であり、指定されたブール式に応じて異なる値に評価されます。
match 式 match 式について説明します。この式により、式を一連のパターンと比較し、その比較に基づいて分岐を制御できます。
ループ: for...to for...to 式について説明します。この式は、ループでループ変数の値の範囲を繰り返し処理するために使用します。
ループ: for...in for...in 式について説明します。これは、列挙可能なコレクション (範囲表現、シーケンス、リスト、配列、または列挙型をサポートするその他の構成要素) のパターンと一致するかどうかの照合を反復処理するために使用されるループ構造です。
ループ: while...do while...do 式について説明します。これは、指定したテスト条件が true の間に反復実行 (ループ) を行う場合に使用します。
オブジェクト式 オブジェクト式について説明します。これは、既存の基本型、インターフェイス、または一連のインターフェイスに基づいて、動的に作成される匿名のオブジェクト型の新しいインスタンスを作成する式です。
遅延式 遅延式について説明します。遅延計算は、すぐには評価されず、結果が実際に必要なときに評価される計算です。
コンピュテーション式 F# のコンピュテーション式について説明します。F# のコンピュテーション式には、制御フローの構成要素とバインドを使用してシーケンス化および結合できる計算を記述するための便利な構文が用意されています。 これらを使用すると、"モナド" の便利な構文が提供されます。モナドとは、関数型プログラムのデータ、制御、および副作用の管理に使用できる関数型プログラミングの機能です。 非同期ワークフローはコンピュテーション式の一種であり、非同期の並列計算をサポートします。 詳細については、「非同期ワークフロー」を参照してください。
非同期ワークフロー 非同期ワークフローについて説明します。非同期ワークフローは、同期コードを通常記述するのと非常に近い方法で非同期コードを記述できる言語機能です。
コード クォート コード クォートについて説明します。この言語機能を使用すると、F# のコード式をプログラムで生成して使用できます。
クエリ式 クエリ式について説明します。これは、F# 用の LINQ を実装し、データ ソースや列挙可能なコレクションに対するクエリを記述できるようにする言語機能です。

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

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

トピック 説明
コンパイラ オプション F# コンパイラのコマンド ライン オプションについて説明します。
コンパイラ ディレクティブ プロセッサ ディレクティブとコンパイラ ディレクティブについて説明します。
ソース行、ファイル、およびパスの識別子 __LINE____SOURCE_DIRECTORY____SOURCE_FILE__ の識別子について説明します。これは、コード内のソース行番号、ディレクトリおよびファイル名にアクセスするできるようにする組み込みの値です。