Visual StudioへのF#のインストール
10月の終わりから11月の初めにかけてロサンゼルスで行われたMicrosoft PDC 2008(Professional Developer Conference)に参加したか、多くのF#セッションをオンラインで視聴したならば、MicrosoftがF#をVisual Studioの完全サポート言語にする予定でいることに気付かれたでしょう。つまり、Visual Studio(おそらく次の2010バージョン)のユーザーは皆、現在のC#やVisual Basic .NETと同様にF#のサポートを受けられるようになると思われます。
しかし、本稿の執筆時点では、F#はまだCommunity Technology Preview(CTP)の段階で、最新バージョンは2008年9月に発表された1.9.6.2です(図1を参照)。このCTP版を使うにはVisual Studio 2008が必要ですが、他の.NET言語と同様、コマンドラインコンパイラのfsc.exeを使用することもできます。F#の現在のダウンロードパッケージのサイズは14メガバイトです。

さらに重要なことに、F#は、例えばPowerShellプロンプトのように、対話形式でも使用できます。インタラクティブ版のF#は、プロトタイピングを短時間で行うのに非常に役立ちます。また、スタンドアロンのコマンドライン版として利用することも、Visual Studio 2008 IDEに統合することも可能です。コマンドライン版の名前は「fsi.exe」です(図2を参照)。

Visual Studio IDEの内部では、[View]→[Other Windows]→[F# Interactive]メニューコマンドを使って、または、Ctrl+Alt+Fキーを押すことによって、対話型のF#インタープリタを開くことができます。当然ながら、このためには、F#インストールパッケージを最初にインストールしなければなりません(図3を参照)。コマンドライン版でコンソールを終了するには、「#quit;;」と入力します。ご覧のように、2つのセミコロンが必要です。これは、標準のステートメントセパレータです。

全面的なVisual Studio統合が効果的ですが、現在のところ、まだ完全ではありません。例えば、F#でWPFまたはWebアプリケーションプロジェクトを開始することはできません。現時点では、ビジュアルデザイナを含まないコードのみのファイルを使用する必要があります。これに加えて、基本のF#コードファイル(ファイル拡張子が.fsのファイル)は非常にシンプルで、#lightディレクティブのみを含みます。このディレクティブは、いわゆる軽量モードを有効にします。この行の下に、各自のコードを記述します。
F#では、コードをモジュールと個々の.fsコードに分割して、コードを再利用できます(図4を参照)。ただし、このCTP版では、実際に最初に実行されるファイルは、プロジェクトに追加されるコードファイルの順序に依存するようです。
![図4 新しいF#モジュールの開始や追加は[New Project]ダイアログボックスで行う](http://cz-cdn.shoeisha.jp/static/images/article/3381/image04.jpg)
つまり、.fsproj XMLプロジェクトファイル内で.fsファイルが参照される順序が使用されます。Visual Studioのソリューションエクスプローラのポップアップメニューコマンドを使って、アイテムを上下に移動できます。幸いなことに、この操作は互いを参照していないモジュールにのみ影響します。
まとめ
F#は関数型言語です。それに加えてオブジェクト指向プログラミングをサポートしており、その結果、最新の.NET Frameworkのあらゆる要素をサポートできます。C#などの言語に慣れている場合、関数型言語に慣れるのに多少時間はかかるかもしれませんが、言語を理解すればするほど、大いに役立つことでしょう。
本稿では、F#言語の基本機能と、この言語が効果を発揮する理由と場所について説明しました。コード例を参照することで、特にビジネスアプリケーションにおいて、何ができるかを理解できるでしょう。もちろん、この1つの記事では説明しきれないほどの機能をF#言語は備えていますが、何事も最初は小さな一歩から始まります。
今後、F#の重要性が増していくことは疑いようがありません。ほぼ間違いなく、Visual Studioの次のバージョン(バージョン2010)では、F#ビルトインがサポートされるでしょう。.NET全体をF#アプリケーションから自由に使えますが、F#を使用するのに最適なのは、高速なプロトタイピング、アルゴリズムの実装、数学関数に加えて、「小規模なプログラミング」が求められるすべてのものです。
そのときまでに、関数型言語を習得しておきましょう。
リンク
F#言語を初めて学ぶには、以下のリンクが役に立ちます。
