Visual Studio Code で F# を始める
Ionide プラグイン を使用して、Visual Studio Code で F# を記述して、IntelliSense とコード リファクタリングを使用して、優れたクロスプラットフォームの軽量統合開発環境 (IDE) エクスペリエンスを実現できます。 プラグインの詳細については、Ionide.io を参照してください。
手記
開始する前に、F# と Ionide プラグインの両方がインストールされていることを確認してください。
Ionide を使用して最初のプロジェクトを作成する
新しい F# プロジェクトを作成するには、コマンド ラインを開き、.NET CLI を使用して新しいプロジェクトを作成します。
dotnet new console -lang "F#" -o FirstIonideProject
完了したら、プロジェクトにディレクトリを変更し、Visual Studio Code を開きます。
cd FirstIonideProject
code .
Visual Studio Code でプロジェクトが読み込まれると、ウィンドウの左側に F# ソリューション エクスプローラー ウィンドウが開きます。 つまり、Ionide は、先ほど作成したプロジェクトが正常に読み込まれました。 この時点より前にエディターでコードを記述できますが、これが発生すると、すべてが読み込みが完了します。
最初のスクリプトを記述する
.NET Core スクリプトを使用するように Visual Studio Code を構成したら、Visual Studio Code のエクスプローラー ビューに移動し、新しいファイルを作成します。 名前を MyFirstScript.fsxと付けてください。
次に、次のコードを追加します。
let toPigLatin (word: string) =
let isVowel (c: char) =
match c with
| 'a' | 'e' | 'i' | 'o' | 'u'
| 'A' | 'E' | 'I' | 'O' | 'U' -> true
|_ -> false
if isVowel word[0] then
word + "yay"
else
word[1..] + string(word[0]) + "ay"
この関数は、単語を Pig Latinの形式に変換します。 次の手順では、F# Interactive (FSI) を使用して評価します。
関数全体を強調表示します (長い 11 行にする必要があります)。 強調表示されたら、Alt キーを押しながら Enterキーを押します。 画面の下部にターミナル ウィンドウがポップアップ表示され、次のようになります。
を使用した F# 対話型出力の例
これにより、次の 3 つのことが行われます。
- FSI プロセスが開始されました。
- 強調表示したコードが FSI プロセスに送信されました。
- FSI プロセスは、送信したコードを評価しました。
送信したものは 関数であるため、FSI でその関数を呼び出すことができます。 対話型ウィンドウで、次のように入力します。
toPigLatin "banana";;
次の結果が表示されます。
val it: string = "ananabay"
では、最初の文字として母音を使用してみましょう。 次のように入力します。
toPigLatin "apple";;
次の結果が表示されます。
val it: string = "appleyay"
関数は期待どおりに動作しているように見えます。 おめでとうございます!Visual Studio Code で最初の F# 関数を記述し、FSI で評価しましたね。
手記
ご注意のように、FSI の行は ;;
で終了します。 これは、FSI で複数行を入力できるためです。 最後の ;;
により、コードがいつ完了するかを FSI に知らせます。
コードの説明
コードが実際に何を行っているかがわからない場合は、次の手順を実行します。
ご覧のように、toPigLatin
は単語を入力として受け取り、その単語の Pig-Latin 表現に変換する関数です。 この規則は次のとおりです。
単語の最初の文字が母音で始まる場合は、単語の末尾に "yay" を追加します。 母音で始まらない場合は、その最初の文字を単語の末尾に移動し、"ay" を追加します。
FSI で次のことに気付いたかもしれません。
val toPigLatin: word: string -> string
これは、toPigLatin
が入力として string
を受け取り(word
と呼ばれます)、別の string
を返す関数であることを示しています。 これは、関数の
関数の本体では、次の 2 つの異なる部分があります。
isVowel
と呼ばれる内部関数。特定の文字 (c
) が母音であるかどうかを判断します。この関数は、指定されたパターンの 1 つに一致するかどうかを、パターン マッチングを使用して確認します。let isVowel (c: char) = match c with | 'a' | 'e' | 'i' | 'o' | 'u' | 'A' | 'E' | 'I' | 'O' | 'U' -> true |_ -> false
最初の文字が母音であるかどうかを確認し、最初の文字が母音であったかどうかに基づいて入力文字から戻り値を構築する
if..then..else
式。if isVowel word[0] then word + "yay" else word[1..] + string(word[0]) + "ay"
toPigLatin
の流れは次のとおりです。
入力単語の最初の文字が母音かどうかを確認します。 その場合は、単語の末尾に "yay" を付けます。 それ以外の場合は、その最初の文字を単語の末尾に移動し、それに "ay" を追加します。
これに関する最後の点が 1 つあります。F# では、関数から返す明示的な命令はありません。 これは、F# が式ベースであり、関数の本体で最後に評価された式によって、その関数の戻り値が決定されるためです。 if..then..else
自体が式であるため、then
ブロックの本体または else
ブロックの本体の評価によって、toPigLatin
関数によって返される値が決まります。
コンソール アプリを Pig Latin ジェネレーターに変換する
この記事の前のセクションでは、F# コードを記述する際の一般的な最初の手順を示しました。初期関数を記述し、FSI を使用して対話形式で実行します。 これは REPL 駆動開発と呼ばれ、REPL は "読み取りEvaluate-Print ループ" を表します。 機能を試すには、何かが機能するまでの優れた方法です。
REPL 駆動型開発の次の手順は、作業コードを F# 実装ファイルに移動することです。 その後、F# コンパイラによって、実行できるアセンブリにコンパイルできます。
まず、.NET CLI で前に作成した Program.fs ファイルを開きます。 一部のコードが既に存在していることがわかります。
次に、PigLatin
という新しい module
を作成し、前に作成した toPigLatin
関数を次のようにコピーします。
module PigLatin =
let toPigLatin (word: string) =
let isVowel (c: char) =
match c with
| 'a' | 'e' | 'i' | 'o' | 'u'
| 'A' | 'E' | 'I' | 'O' | 'U' -> true
|_ -> false
if isVowel word[0] then
word + "yay"
else
word[1..] + string word[0] + "ay"
このモジュールは、main
関数の上と open System
宣言の下にある必要があります。 F# では宣言の順序が重要であるため、ファイルで関数を呼び出す前に関数を定義する必要があります。
次に、main
関数で、引数に対して Pig Latin ジェネレーター関数を呼び出します。
[<EntryPoint>]
let main args =
for arg in args do
let newArg = PigLatin.toPigLatin arg
printfn "%s in Pig Latin is: %s" arg newArg
0
これで、コマンド ラインからコンソール アプリを実行できます。
dotnet run apple banana
スクリプト ファイルと同じ結果が出力されますが、今回は実行中のプログラムとして出力されます。
Ionide のトラブルシューティング
発生する可能性がある特定の問題をトラブルシューティングする方法をいくつか次に示します。
- Ionide のコード編集機能を取得するには、F# ファイルをディスクに保存し、Visual Studio Code ワークスペースで開いているフォルダー内に保存する必要があります。
- Visual Studio Code を開いてシステムに変更を加えた場合、または Ionide の前提条件をインストールした場合は、Visual Studio Code を再起動します。
- プロジェクト ディレクトリに無効な文字がある場合は、Ionide が機能しない可能性があります。 この場合は、プロジェクト ディレクトリの名前を変更します。
- Ionide コマンドが動作していない場合は、Visual Studio Code キー バインド 確認して、誤ってオーバーライドしているかどうかを確認します。
- お使いのマシンで Ionide が壊れていて、上記のどの方法でも問題が解決していない場合は、コンピューター上の
ionide-fsharp
ディレクトリを削除して、プラグイン スイートを再インストールしてみてください。 - プロジェクトの読み込みに失敗した場合 (F# ソリューション エクスプローラーに表示されます)、そのプロジェクトを右クリックし、[詳細 表示 をクリックして診断情報を取得します。
Ionide は、F# コミュニティのメンバーによって構築および管理されているオープンソース プロジェクトです。 問題を報告し、ionide-vscode-fsharp GitHub リポジトリ
Ionide Gitter チャネルの Ionide 開発者と F# コミュニティからさらに支援を求めることもできます。
次の手順
F#とその言語機能について詳しく知るには、「F#のツアー 」をご覧ください。
.NET