Visual F# 2010 の新機能

F# は、Visual Studio 2010 に用意されている .NET Framework 向けのマルチパラダイム プログラミング言語です。 F# は、関数型プログラミング、オブジェクト指向プログラミング、および命令型プログラミングをサポートしています。

Visual Studio 2010 リリースの Visual F# の機能

以下のセクションでは、Visual F# の最初のリリースで利用できる主な機能について説明します。

関数型プログラミングのサポート

関数は値として処理され、他の関数に直接渡すことができます。 この機能により、高階関数 (関数で動作する関数) を簡単にコーディングできるようになります。 また、より宣言的なコードを簡単に記述できるようになり、エラーが発生する可能性が低くなります。

F# は複合プログラミングをサポートしています。 単純な演算子の構文を使用して関数を作成し、順番に呼び出すことができます。 パイプライン演算子を使用して複数の関数呼び出しを連結でき、これにより、ある関数の出力または戻り値を、別の関数に入力として渡すことができます。 合成演算子を使用して複数の関数を組み合わせることで、新しい関数を定義することもできます。

詳細については、「関数 (F#)」を参照してください。

ラムダ式

ラムダ式を使用すると、関数に名前を付けることなく、関数を適切に定義できます。 詳細については、「ラムダ式: fun キーワード (F#)」を参照してください。

有効なデータ型

F# には、単純なデータのコレクションの組や構造化されたシンボリック データの判別共用体などの関数型プログラミング スタイルをサポートする型が用意されています。 詳細については、「組 (F#)」、「判別共用体 (F#)」、および「オプション (F#)」を参照してください。

変更不可のデータ型

F# では、変更できないリスト、マップ、セット、シーケンス、レコードなどの変更できないデータ構造を使用できます。 詳細については、「リスト (F#)」、「シーケンス (F#)」、および「レコード (F#)」を参照してください。

パターン一致

パターン一致機能を使用すると、データを構成要素に分解し、データの分解に基づく複雑な分岐を実行できます。 パターン一致は拡張することもできます。 詳細については、「match 式 (F#)」、「パターン一致 (F#)」、および「アクティブ パターン (F#)」を参照してください。

非同期/並列プログラミング

F# は、非同期プログラミングがサポートしており、このプログラミングを以前よりも簡単にできるようにする構成要素を含んでいます。 詳細については、「非同期ワークフロー (F#)」を参照してください。 F# は、Parallel Extensions to the .NET Framework と共に使用することもできます。 F# Power Pack では、Parallel LINQ (PLINQ) も F# と共に使用できます。 詳細については、「.NET Framework の並列プログラミング」を参照してください。

対話型プログラミング

Visual F# には、コードを対話的にコンパイルおよび実行するための F# インタープリターである F# Interactive (fsi.exe) が含まれています。 これにより、コードのプロトタイプを簡単に作成し、プロジェクトをコンパイルせずにコーディング構造を試すことができます。 F# Interactive は Visual Studio IDE とも統合されています。 詳細については、「F# Interactive (fsi.exe) のリファレンス」を参照してください。

遅延計算

F# は遅延計算をサポートしています。これにより、結果が必要になるまで計算を遅延させることができます。 詳細については、「遅延計算 (F#)」を参照してください。

オブジェクト指向プログラミングのサポート

F# はオブジェクト指向言語機能をサポートしています。これにより、.NET Framework へのフル アクセスが F# プログラムに許可されるだけでなく、F# の .NET Framework API を作成することもできます。 詳細については、「クラス (F#)」、「メンバー (F#)」、および「継承 (F#)」を参照してください。

命令型プログラミングのサポート

F# は、この種のプログラミングが問題を解決する最善の方法であると思われる状況で使用できる、変更可能な変数および配列、副作用を伴う関数、ループ構造などの命令型コード コンストラクターをサポートしています。

数値演算のサポート

F# は数値演算をサポートしています。 これには、演算子のオーバーロード サポート、ジェネリックを使用する演算子、および指数演算子を含む数値演算子の完全なセットが含まれます。

また、F# の機能は、測定単位が関連付けられた浮動小数点データをサポートしており、これにより、単位がチェックされた浮動小数点の式の使用が可能になります。

高度な型システム

F# は、ジェネリック プログラミングをサポートしています。 詳細については、「ジェネリック (F#)」を参照してください。

F# は、静的に型指定された言語であり、型の推論をサポートしています。 つまり、すべてのプログラム要素にはコンパイル時に明確な型があり、タイプ セーフが保証されますが、すべての値の型を明示的に指定する必要はないという意味です。 F# コンパイラは、多くの場合、明示的に型を指定せずにプログラム要素の型を推論できるため、コードがさらに少なくなり、型の不一致に関連するプログラミング エラーが減少します。 型の推論には、自動汎化も含まれます。これは、ジェネリックにすることができる関数を自動的にジェネリックとしてコンパイルする機能です。 詳細については、「型の推論 (F#)」を参照してください。

便利なライブラリ

Visual F# に含まれているライブラリ セットは、コア言語、コレクション型、F# アセンブリに対するリフレクション、および書式が設定された I/O に対するサポートを提供します。 F# では、Parallel Extensions to the .NET Framework や Windows Presentation Foundation などの .NET Framework 4 のすべての機能にアクセスすることもできます。 詳細については、「.NET Framework 4」を参照してください。

参照

その他の技術情報

F# 言語リファレンス

F# の概要