Visual Studio2022 コミュニティエディションでのF#コンパイラの使い方
ここでは、Visual Studio 2022 コミュニティエディションでF#を利用する方法を説明します。
コンパイラは、F#と開発環境のインストールが済んでいればすぐに使えます。
まず、最初にすべきことはプロジェクトの作成です。
Visual Studio2022を起動し
右下の新しいプロジェクトの作成(N)を選択します。
半分以上スクロールしたところにあるコンソールアプリを選択します。(下にF#とタグがあるもの)
次にプロジェクト名、保存場所、ソリューション名を入力します。
プロジェクト名とソリューション名は同じもので構いません。
次にフレームワーク名は.NET 6.0(長期的なサポート)を選択します。
(ここまでのインストール作業でこれ以外の選択肢はないかもしれません)
これでプロジェクトの作成が終わります。
次にソリューションが開かれますが、もし何も表示されていなかったら
画面右側のソリューションエクスプローラーから
デフォルトで表示されているProgram.fsをダブルクリックして開きます。
するとHello Worldを表示するコードが表示されているはずです。
まずはビルドして実行してみましょう。
画面上部のビルドタブにあるソリューションのビルドを選ぶか、
Ctrl+Shift+bを押してビルドします。
ビルドには少しだけ時間がかかりますが、ビルド:1 正常終了と出ていれば成功です。
次に実行してみます。
デバッグタブにあるデバッグの開始かデバッグなしで開始を選択します。
それぞれF5、Ctrl+F5キーでも実行できます。
黒いコンソール画面が出現し、Hello Worldが表示されたら成功です。
以下、以前の解説ですが何かの役に立つかもしれないので残しておきます
ファイル(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という名前のファイルが追加されます。
もちろんファイル名は変えても良いし
ファイルを追加していくことも出来ます。
まずは、ここにプログラムコードを打ち込んで動作を確認してみましょう。
以下のように書き直してください。
※
日本語表示のための文字コード設定作業は不要になりました
その後
ビルド(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と打つほうが好きです