Visual F#

F# は、従来のオブジェクト指向プログラミングと命令型 (手続き型) プログラミングに加えて、関数型プログラミングをサポートするプログラミング言語です。Visual F# 製品は、F# アプリケーションの開発と F# コードを使用した他の .NET Framework アプリケーションの拡張をサポートします。F# は、.NET Framework 言語のファースト クラスのメンバーであり、関数型言語の ML ファミリに著しく似ています。

このバージョンの Visual F# には F# 3.0 バージョンの言語が含まれています。新機能については、「Visual Studio 2012 の Visual F# の新機能」を参照してください。

マルチパラダイム言語

F# は、次の関数型プログラミング構成要素をサポートしています。

  • 値としての関数。これにより、関数を柔軟に操作できます。詳細については、「ファースト クラスの値としての関数 (F#)」を参照してください。

  • 関数合成とパイプライン処理。これにより、複数の関数を連結して新しい関数を作成したり、データに対する連続した操作のコーディングを簡略化したりできます。詳細については、「関数 (F#)」を参照してください。

  • 型推論。これにより、タイプ セーフを犠牲にすることなく、型を明示的に呼び出す必要性を減らすことができます。

  • 自動ジェネリック化。これにより、追加の作業を行わずにさまざまな型を使用するコードを簡単に記述できるようになり、コードの再利用が促進されます。

  • パターン マッチのサポート。これにより、複雑な条件付きコードが簡略化されます。判別共用体。この共用体は、パターン マッチで使用するために最適化されます。

  • コレクション型。リスト型とシーケンス型を含む、変更不可のデータを使用できます。

  • ラムダ式。これは、多くの関数型プログラミング構成要素にとって重要な機能です。

  • 関数の引数の部分適用。これにより、新しい関数を既存の関数から暗黙で作成できます。詳細については、「関数 (F#)」を参照してください。

  • コード クォート。F# の式をプログラムで操作するための機能です。

F# は、次のようなオブジェクト指向プログラミングおよび .NET Framework の機能をサポートしています。

  • プロパティ、メソッド、およびイベントを設定できるオブジェクトを含む .NET Framework オブジェクト モデル、ポリモーフィズムまたは仮想関数、継承、およびインターフェイス。

  • データのカプセル化 (型のパブリック インターフェイスを実装から分離)。

  • ジェネリックおよび組み込みのプリミティブ型に対応した演算子のオーバーロード

  • 型拡張。これにより、新しい派生型を追加で作成することなく、既存の型を簡単に拡張できます。

  • オブジェクト式。これにより、新しい型を宣言してオブジェクトをインスタンス化する代わりに、必要に応じて、小さなオブジェクトを式で暗黙で定義できます。

  • .NET Framework とマネージ コード アセンブリへのアクセス。

  • プラットフォーム呼び出しによるネイティブ コードへのアクセス。

Visual Studio 2012 の Visual F# は、F# 言語を拡張して F# インフォメーションリッチ プログラミングをサポートします。このテクノロジを使用すると、データベース、Web サービス、Web データ フィード、データ ブローカーなど、今日のエンタープライズや Web プログラミングで重要な役割を果たすことの多い広大なデータとサービスに対して直接プログラミングできます。

F# インフォメーションリッチ プログラミングはコード指向であり、スクリプトとプロジェクトの両方で使用できます。また、IntelliSense の機能を使用して厳密な型を指定しながら、コード内で直接 OData および SQL Server データベース接続を指定することができます。メカニズムは拡張可能で、SharePoint、Web オントロジ、Windows Management Instrumentation (WMI)、XML、その他の情報ソースなど、データ、コード、およびサービス テクノロジ用の新しいプロバイダーの作成や参照が可能になります。技術的に、F# インフォメーションリッチ プログラミングには、F# 型プロバイダー メカニズム、F# クエリ式、およびデータベース、OData、Web サービスなどのプログラミングに使用する一連の組み込み型プロバイダーが含まれています。

詳細については、「Visual Studio 2012 の Visual F# の新機能」を参照してください。

また、F# は分岐構造やループ構造などの一般的な命令型プログラミング構成要素をすべてサポートしています。

F# ライブラリ

Visual F# 製品には、多数の便利な関数と型を備えた F# ライブラリも用意されています。これには、リスト配列マップセットシーケンスなどのコレクション用の API が含まれています。F# ライブラリは、リフレクション、イベント、および書式が設定された I/O もサポートしています。

さらに、F# ライブラリは、並列計算に対応するための非同期ワークフローおよび並行ワークフロー間で通信するための機構もサポートしています。詳細については、「非同期ワークフロー (F#)」、「Control.Async クラス (F#)」、および「Control.MailboxProcessor<'Msg> クラス (F#)」を参照してください。

主要な F# ライブラリは FSharp.Core.dll です。その他のライブラリは、Microsoft F# デベロッパー センター Web サイトで入手できる F# Power Pack に用意されています。

F# コア ライブラリには個別にコンパイルされたバージョンがあり、.NET Framework のさまざまなバージョンをサポートします。2.0 Version は .NET Framework 2.0、3.0、および 3.5 をサポートし、4.0 Version は .NET Framework 4 以降をサポートします。また、Silverlight 用の F# コア ライブラリのバージョンもダウンロードできます。

対話型のスクリプト

Visual F# には、Visual Studio の開発環境に統合される対話形式のウィンドウが用意されています。このウィンドウでは、F# コードを入力し、それをすぐにコンパイルして実行できます。これにより、コード コンストラクターのプロトタイプを簡単に作成し、記述中のコードをテストできます。対話形式のウィンドウでは、F# Interactive ツールである fsi.exe を実行できます。このツールは、コマンド ラインから実行することもできます。この機能により、F# をスクリプト言語として使用できます。詳細については、「F# Interactive (fsi.exe) のリファレンス」を参照してください。

Visual Studio との統合

F# は Visual Studio と統合されており、次の機能をサポートしています。

関連トピック

タイトル

説明

Visual Studio 2012 の Visual F# の新機能

現在のリリースの Visual F# の新機能について説明します。

Visual F# 開発ポータル

F# に関するさまざまな情報への入り口です。

Visual Studio による F# プログラムの作成

プロジェクト設定や IntelliSense など、統合開発環境 (IDE) における F# の使用方法について説明します。

F# 言語リファレンス

キーワード、シンボル、演算子の情報を含む、F# 言語に関するリファレンス情報を示します。

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

F# コア ライブラリの FSharp.Core.dll に関するリファレンス情報を示します。

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

F# コンパイラ fsc.exe に関する情報 (コンパイラ オプションに関する情報を含む) を提供します。

F# Interactive (fsi.exe) のリファレンス

F# Interactive に固有のコマンド ライン オプションと診断メッセージの情報を含む、F# Interactive (fsi.exe) に関する情報を示します。

Visual F# のサンプルとチュートリアル

F# のサンプルとチュートリアルへのリンクを示します。

参照

その他の技術情報

Visual Studio