Visual Studio2010 shellでの F#コンパイラの使い方

ここでは、Visual Studio 2010 shellから F#を利用する方法を説明します。 コンパイラは、 F#と開発環境のインストールが済んでいればすぐに使えます。 まず、最初にすべきことはプロジェクトの作成です。 Visual Studio2010を起動し ファイル(F)→新規作成(N)→プロジェクト(P)を選択します。 すると次のような画面が出ます。 1.左側にある「インストールされたテンプレート」でVisual F#を選択  F#しかインストールしていない場合は  最初から選択されている状態になっているはずです 2.真ん中のペインで、F# Applicationを選択  これも、F#しかインストールしていない場合は  最初から選択されています。 3.画面下部にプロジェクト名を記入  ここではtestと入力しています。 4.ソリューションのディレクトリを作成、のチェックを外す  ソリューションは、複数のプロジェクトをまとめて管理するための機能です  別に外さなくても問題はありません 5.画面右下のOKを押す これでプロジェクトの作成が終わり、次のような画面になると思います。 画面右側に表示されているソリューションエクスプローラーに 今作成したtestというプロジェクト名が表示されているのがわかると思います。 Referencesというフォルダに入っているのは F#を動作させるためのDLLです。 ここにDLLを追加すれば、 対応した.Net Frameworkの機能が使えるようになります。 また、プロジェクトを作成すると 自動的にProgram.fsという名前のファイルが追加されます。 もちろんファイル名は変えても良いし ファイルを追加していくことも出来ます。 まずは、ここにプログラムコードを打ち込んで動作を確認してみましょう。 以下のように書き直してください。 ※日本語表示のための文字コード設定作業は不要になりました
最初のプログラム
printfn "はろーわーるど";;
その後 ビルド(B)→ソリューションのビルド(B)を選択すると プログラムをコンパイル(実行するための準備)できます。 画面下部のウィンドウに ========== ビルド: 正常終了または最新の状態 1、失敗 0、スキップ 0 ========== というような表示が出れば成功です。 もし、失敗 1のような表示があれば どこかで失敗しています。打ち間違いなどがないか見直してみてください ここまでの作業で こんな感じになっているハズです。 最後に、デバッグ(D)→デバッグなしで開始(H)を選択する(Ctrl+F5でも良い)と プログラムを実行することが出来ます。 コマンドプロンプトが表示され、 はろーわーるど と表示されれば成功です。

OCaml互換の関数の使い方と、参照の追加

OCaml互換の機能はFSharp.PowerPackというライブラリに入っています。 以前は最初からくっついていたんですが 切り離されてしまったため、ダウンロードする必要があります。 こちらからダウンロード出来ます ダウンロード後は、このページの下部にある Visual Studio 2008 shellと同様の操作で使えます。

Visual Studio2008 shellでの F#コンパイラの使い方

ここでは、Visual Studio 2008 shellから F#を利用する方法を説明します。 プログラムを作成するにはまず、 プロジェクトを作成する必要があります。 これは、Visual Studioを起動した後に File -> New -> プロジェクト(P)を選択します。 以下のように記入してみてください  ・プロジェクトの種類はVisual F#を選択  ・テンプレートは、F# Applicationを選択  ・プロジェクト名に好きな名前を入れる。ここではtestとします。  ・ソリューションのディレクトリを作成のチェックは外します   ※ソリューションは、複数のプロジェクトをまとめて管理するための機能です    なお、チェックしたままにしておいても問題は無いです。 プロジェクトの作成が終わると、以下のような画面になります。 画面右側に表示されているソリューションエクスプローラーに Program.fsとあるのが、現在左側のウィンドウに開いている プログラムになります。 Referencesというフォルダに入っているのは F#を動作させるためのDLLです。 ここにDLLを追加すれば、 対応した.Net Frameworkの機能が使えるようになります。 まず、プログラムを動作させるため、 以下のように書き直してください。
最初のプログラム
#light "off"

System.Console.WriteLine "Hello World";;
つぎに、Build -> ソリューションのビルド(B)を選択することで このプログラムをコンパイル(と、リンク)することが出来ます。 画面下部のウィンドウに ========== ビルド: 1 正常終了または最新の状態、失敗、スキップ========== というようなメッセージがでれば正常にビルド完了となります。 プログラムの実行には Debug -> デバッグなしで開始を選択します。 すると、次のような画面が表示されプログラムの実行結果が表示されます。

日本語の設定

F#では、もちろん日本語文字列も扱えるのですが 文字列リテラルで直に日本語を扱うためには ソースコードがUTF8で記述されている必要があります。 この設定を変更するには プログラムが書かれているファイルにカーソルが合っている状態で ファイル -> 保存オプションの詳細設定 を選択し、Unicode(UTF-8 シグネチャ付き) - コードページ 65001を選択します。 これで、文字列リテラルで日本語が扱えるようになりました。 試しに以下のようなプログラムを実行してみてください
日本語文字列の出力
#light "off"

System.Console.WriteLine "こんにちは";;

OCaml互換の関数の使い方と、参照の追加

以前のバージョンでは普通に使えたような気がするのですが 2008/10/18現在のバージョン(1.9.6.2)では OCaml互換の機能は別の参照に含まれています。 例えば、このホームページでもよく使っている print_endline関数を使えるようにしてみましょう。 まず、右側のソリューションエクスプローラにある Referencesを右クリックし、参照の追加(R)を選択してください。 次のようなウィンドウが出てくるので FSharp.PowerPackを選択し、OKを押します。 これで、Microsoft.FSharp.Compatibility以下の 名前空間が使用できるようになります。 以下のようなプログラムを実行し、動作を確認してみてください
OCaml互換関数の利用
#light "off"

open Microsoft.FSharp.Compatibility.OCaml;;
print_endline "こんにちは";;

その他の設定

Visual Studioは色々カスタマイズ出来ます。 最後におまけとして、私が最初によく設定するものをあげてみます。  ・キーボードスキームの変更 ツール -> オプション -> キーボード 次の追加キーボードマップスキームを使用の欄で Visual C++ 6を選択 これで、F7でコンパイル、F5でデバッグ、Ctrl+F5で実行出来るようになります  ・エディタの設定 ツール -> オプション -> テキストエディタ F# -> 全般 -> 行番号にチェックを入れる  ・最近開いたプロジェクトの数 ツール -> オプション -> 環境 -> 全般 最近使ったファイルの項目を10項目に増やす

プログラムのロード順序

F#のプログラムは、ソリューションエクスプローラで 上からならんでいる順に実行されます。 そのため、ソリューションエクスプローラに並ぶ順序は とても重要です。 これは、対象のファイルを選択した状態で「Move Up」「Move Down」 を選択することで変更することが出来ます。

インタプリタの起動

Alt+Enterキーを押すことで Visual Studio内にインタプリタが起動します。 なお、私はWindowsキー+R(ファイル名を指定して実行)、 fsiと打つほうが好きです