F# 言語リファレンス

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

F# コードの整理

次の表は、F# コードの整理に関連する参照記事を示しています。

タイトル 説明
名前空間 F# での名前空間のサポートについて説明します。 名前空間を使用すると、プログラム要素のグループに名前を割り当てて、関連する機能の区分にコードを編成することができます。
モジュール モジュールについて説明します。 F# モジュールは名前空間に似ていて、値と関数を含めることもできます。 モジュールのコードをグループ化すると、関連するコードをまとめることができ、プログラム内で名前の競合を回避するのに役立ちます
open 宣言 open のしくみについて説明します。 open 宣言によって、完全修飾名を使用せずに参照できる要素が含まれるモジュール名前空間、または型が指定されます。
シグネチャ シグネチャとシグネチャ ファイルについて説明します。 シグネチャ ファイルには、型、名前空間、モジュールなど F# プログラムの一連の要素のパブリック シグネチャに関する情報が含まれています。 これらのプログラム要素のアクセシビリティを指定するために使用できます。
アクセス制御 F# でのアクセスの制御について説明します。 アクセス制御とは、特定のプログラム要素 (型、メソッド、関数など) を使用できるクライアントを宣言することを意味します。
XML に関するドキュメント XML ドキュメント コメント (トリプル スラッシュ コメントとも呼ばれます) のドキュメント ファイルを生成するためのサポートについて学習します。 他の .NET 言語と同様に、F# のコード コメントからドキュメントを生成できます。

リテラルと文字列

次の表は、F# のリテラルと文字列について説明する参照記事を示しています。

タイトル 説明
リテラル F# のリテラル値の構文と、F# のリテラルの型情報を指定する方法について説明します。
文字列 F# の文字列について説明します。 string 型は、Unicode 文字のシーケンスとしての、変更不可のテキストを表します。 string は .NET の System.String の別名です。
挿入文字列 補間された文字列について説明します。これは、F# の式を直接埋め込むことができる特殊な形式の文字列です。

値と関数

次の表は、値、let-bindings、および関数に関連する言語の概念を説明する参照記事を示しています。

タイトル 説明
特定の型を持つ変更不可の数量である値について説明します。値は、整数または浮動小数点数、文字またはテキスト、リスト、シーケンス、配列、タプル、判別共用体、レコード、クラス型、関数値のいずれかです。
関数 関数は、あらゆるプログラミング言語においてプログラムの実行の基本となる単位です。 F# の関数にはそれぞれ名前と本体があり、パラメーターや引数を受け取ることができます。 F# ではさらに、関数型プログラミング構成要素もサポートしています。たとえば、関数を値として処理したり、名前のない関数を式で使用したりできます。また、関数の合成による新しい関数の作成、カリー化関数、関数の引数の部分適用による関数の暗黙の定義などがサポートされます。
関数式 F# の "fun" キーワードを使用して、匿名関数であるラムダ式を定義する方法について説明します。

ループと条件

次の表は、F# のループと条件について説明する記事を示しています。

タイトル 説明
条件式: if...then...else if...then...else 式について説明します。これは、コードのさまざまな分岐を実行する機能であり、指定されたブール式に応じて異なる値に評価されます。
ループ: for...in for...in 式について説明します。これは、列挙可能なコレクション (範囲表現、シーケンス、リスト、配列、または列挙型をサポートするその他のコンストラクト) のパターンと一致するかどうかの照合を反復処理するために使用されるループ構造です。
ループ: for...to for...to 式について説明します。これは、ループでループ変数の値の範囲を繰り返し処理するために使用します。
ループ: while...do while...do 式について説明します。これは、指定したテスト条件が true の間に反復実行 (ループ) を行う場合に使用します。

パターン マッチ

次の表は、言語の概念について説明した参照記事を示しています。

タイトル 説明
パターン一致 入力データを変換するための規則であり、F# 全体で使用されるパターンについて説明します。 データをパターンと比較したり、データを構成要素部分に分解したり、さまざまな方法でデータから情報を抽出したりできます。
match 式 match 式について説明します。これにより、式を一連のパターンと比較し、それに基づいて分岐を制御できます。
アクティブ パターン アクティブ パターンについて説明します。 アクティブ パターンでは、入力データを分割する名前付きパーティションを定義できます。 アクティブ パターンを使用すると、パーティションごとにカスタマイズした方法でデータを分解できます。

例外処理

次の表は、例外処理に関連する言語の概念を説明する参照記事を示しています。

タイトル 説明
例外処理 F# での例外処理のサポートについて説明します。
try...with try...with 式を使用して例外処理を行う方法について説明します。
try...finally F# の try...finally 式を使用して、コードのブロックで例外がスローされた場合でもクリーンアップ コードを実行できるようにする方法を説明します。
use キーワード useusing キーワードについて説明します。これらを使用して、リソースの初期化と解放を制御できます。
アサーション assert 式について説明します。これは、式のテストに使用できるデバッグ機能です。 デバッグ モードでエラーが発生すると、アサーションによってシステム エラーのダイアログ ボックスが生成されます。

演算子と型の推定

次の表は、F# での型と型の推論について説明する参照記事を示しています。

タイトル 説明
F# で使用される型と、F# 型を指定および記述する方法について学習します。
基本の型 F# で使用される基本的な型について説明します。 また、対応する .NET 型と各型の最小値と最大値も示します。
Unit 型 unit 型について説明します。これは、特定の値を持たないことを示す型です。unit 型には値が 1 つだけあり、他の値が存在しない場合や不要な場合のプレースホルダーとして機能します。
型略称 型略称について説明します。これは、型の代替名です。
型推論 F# コンパイラが値、変数、パラメーター、戻り値の型を推定する方法について説明します。
キャストと変換 F# の型変換のサポートについて説明します。
ジェネリック F# でのジェネリック コンストラクトについて説明します。
自動ジェネリック化 F# で関数の引数や型を自動的にジェネリック化して、可能な場合に複数の型を処理できるようにする方法について説明します。
制約 ジェネリック型パラメーターに適用して、ジェネリック型または関数の型引数の要件を指定する制約について説明します。
フレキシブル型 フレキシブル型について説明します。 フレキシブル型の注釈は、パラメーター、変数、または値の型が、指定された型と互換性があることを示します。互換性は、クラスまたはインターフェイスのオブジェクト指向の階層における位置によって決まります。
測定単位 測定単位について説明します。 F# の浮動小数点値には測定単位を関連付けることができます。測定単位は一般に、長さ、体積、質量などを示すために使用されます。
Byrefs 低レベルのプログラミングに使用される、F# の byref および byref に似た型について説明します。

タプル、リスト、コレクション、オプション

次の表は、F# でサポートされる型について説明した参照記事を示しています。

タイトル 説明
タプル タプルについて説明します。これは、名前のない値の順序を指定したグループです。それぞれの型は異なる場合もあります。
コレクション 配列、リスト、シーケンス (seq)、マップ、およびセットの型を含む、F# 機能のコレクション型の概要を示します。
リスト リストについて説明します。 F# のリストは、順序が指定されており変更できない一連のすべて同じ型の要素です。
Options オプションの型について説明します。 F# のオプションは、値が存在する場合にも存在しない場合にも使用されます。 オプションには基になる型があり、その型の値を保持する場合と値がない場合があります。
配列 配列について説明します。 配列は、0 から始まる一連のデータ要素の、固定サイズの変更可能なシーケンスで、その型はすべて同じです。
シーケンス シーケンスについて説明します。 シーケンスは、すべてが 1 つの型である論理的な一連の要素です。 シーケンスの個々の要素は必要な場合にのみ計算されるため、リテラル要素が示す数よりも少ない要素で表現されることがあります。
シーケンス式 必要に応じてデータのシーケンスを生成するためのシーケンス式について説明します。
参照セル 参照セルについて説明します。これは、参照セマンティクスを持つ変更可能な値を作成できる格納場所です。

レコードと判別共用体

次の表は、F# でサポートされるレコードと判別共用体型の定義について説明する参照記事を示しています。

タイトル 説明
レコード レコードについて説明します。 レコードは、名前付きの値の単純な集合を表しており、オプションでメンバーを含みます。
匿名のレコード データの操作に役立つ言語機能である、匿名レコードの構築と使用の方法について説明します。
判別共用体 判別共用体について説明します。これは、さまざまな名前付きケースのうちのいずれかである可能性がある値をサポートします。値や型はそれぞれ異なる場合もあります。
構造体 構造体について説明します。これはコンパクトなオブジェクト型であり、データが少量で動作が単純な型のクラスよりも効率が良い場合があります。
列挙型 列挙型は、定義された一連の名前付きの値を持つ型です。 リテラルの代わりに使用すると、コードの読み取りおよび保守が容易になります。

オブジェクト プログラミング

次の表は、F# オブジェクト プログラミングについて説明した参照記事を示しています。

タイトル 説明
クラス クラスについて説明します。これは、プロパティ、メソッド、およびイベントを持つことができるオブジェクトを表す型です。
Interfaces インターフェイスについて説明します。これは、他のクラスが実装する関連メンバーのセットを指定します。
抽象クラス 抽象クラスについて説明します。これは、一部またはすべてのメンバーを実装しないようにして、派生クラスから実装できるようにするためのクラスです。
型拡張 型拡張について説明します。これを使用すると、定義済みのオブジェクト型に新しいメンバーを追加できます。
デリゲート デリゲートについて説明します。これは、オブジェクトとしての関数呼び出しを表します。
継承 継承について説明します。これは、オブジェクト指向プログラミングで "is-a" 関係 (サブタイプ) をモデル化するために使用されます。
[メンバー] F# オブジェクト型のメンバーについて説明します。
パラメーターと引数 パラメーターを定義して、関数、メソッド、およびプロパティに引数を渡すための言語サポートについて説明します。 参照渡しの方法についても説明します。
演算子のオーバーロード クラスまたはレコード型の、およびグローバル レベルでの算術演算子をオーバーロードする方法について説明します。
オブジェクト式 オブジェクト式について説明します。これは、既存の基本データ型、インターフェイス、または一連のインターフェイスに基づいて、動的に作成される匿名のオブジェクト型の新しいインスタンスを作成する式です。

Async、タスク、遅延

次の表に、F# の Async 式、タスク式、遅延式について説明するトピックを示します。

Title 説明
Async 式 非同期式について説明します。これにより、同期コードを自然に記述する方法に非常に近い方法で非同期コードを作成できます。
タスク式 タスク式について説明します。これは、.NET タスクを使用または生成する .NET コードと相互運用するときに使用される非同期コードを記述する代替方法です。
遅延式 遅延式について説明します。これは、すぐには評価されず、結果が実際に必要なときに評価される計算です。

コンピュテーション式とクエリ

次の表に、F# のコンピュテーション式とクエリについて説明するトピックを示します。

タイトル 説明
コンピュテーション式 F# のコンピュテーション式について説明します。制御フローのコンストラクトとバインドを使用してシーケンス化および結合できる計算を記述するための便利な構文が提供されます。 それらを使用することで、関数型プログラムのデータ、コントロール、および副作用を管理することができます。
クエリ式 クエリ式について説明します。これは、F# 用の LINQ を実装し、データ ソースや列挙可能なコレクションに対するクエリを記述できるようにする言語機能です。

属性、リフレクション、引用符、プレーンテキストの書式設定

次の表に、F# の反射機能について説明する記事の一覧を示します。これには、属性、引用符、nameof およびプレーンテキストの書式設定が含まれます。

タイトル 説明
属性 F# の属性によってプログラミング コンストラクトに適用されるメタデータが有効になる方法について説明します。
nameof ソース コード内の任意のシンボルの名前を生成できるメタプログラミング機能である、nameof 演算子について説明します。
呼び出し元情報 呼び出し元情報の引数属性を使用し、メソッドから呼び出し元情報を取得する方法について説明します。
ソース行、ファイル、およびパスの識別子 __LINE____SOURCE_DIRECTORY____SOURCE_FILE__ の識別子について説明します。これは、コード内のソース行番号、ディレクトリおよびファイル名にアクセスするできるようにする組み込みの値です。
コード クォート コード クォートについて説明します。この言語機能を使用すると、F# コードの式をプログラムで生成して使用できます。
プレーン テキスト形式 F# アプリケーションおよびスクリプト内で sprintf やその他のプレーン テキスト形式を使用する方法について説明します。

型プロバイダー

次の表は、F# の型プロバイダーについて説明する記事の一覧を示しています。

タイトル 説明
型プロバイダー 型プロバイダーについて説明します。組み込みの型プロバイダーを使用してデータベースや Web サービスにアクセスする方法に関するチュートリアルへのリンクも提供します。
型プロバイダーを作成する 独自の F# 型プロバイダーを作成する方法について説明するため、基本的な概念を示すいくつかの単純な型プロバイダーを紹介します。

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

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

参照テーブル

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

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

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

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

トピック 説明
コンパイラ オプション F# コンパイラのコマンド ライン オプションについて説明します。
コンパイラ ディレクティブ F# コンパイラによってサポートされるプロセッサ ディレクティブとコンパイラ ディレクティブについて説明します。