Visual Studio Code での F# の概要します。Get Started with F# in Visual Studio Code

書き込めるF#でVisual Studio Codeで、 Ionide プラグインクロス プラットフォームの軽量な統合開発環境 (IDE) ですばらしい体験を IntelliSense および基本的なコードを取得するにはリファクタリング。You can write F# in Visual Studio Code with the Ionide plugin to get a great cross-platform, lightweight Integrated Development Environment (IDE) experience with IntelliSense and basic code refactorings. 参照してくださいIonide.ioプラグインの詳細を表示します。Visit Ionide.io to learn more about the plugin.

作業を開始できることを確認します。 F# および ionide の概要プラグインが正しくインストールされているします。To begin, ensure that you have F# and the Ionide plugin correctly installed.

注意

Ionide の概要では、.NET Framework を生成します。F#プロジェクト、dotnet core ではなく、クロス プラットフォームの互換性の問題があることができます。Ionide will generate .NET Framework F# projects, not dotnet core, which can have cross-platform compatibility issues. 実行している場合LinuxまたはOSX、開始する簡単な方法は使用する、コマンド ライン ツールします。If you are running on Linux or OSX, a simpler way to get started is to use the command line tools.

Ionide の概要と、最初のプロジェクトを作成します。Creating your first project with Ionide

新しい F# プロジェクトを作成するには、新しいフォルダー (することができます、どのような名前) に Visual Studio Code を開きます。To create a new F# project, open Visual Studio Code in a new folder (you can name it whatever you like).

次に、コマンド パレットを開いて (ビュー > コマンド パレット) と入力します。Next, open the command palette (View > Command Palette) and type the following:

> F# new project

これで電源がオン、偽造プロジェクト。This is powered by the FORGE project.

注意

テンプレート オプションが表示されない場合は、コマンド パレットで、次のコマンドを実行してテンプレートを更新してください:>F#: Refresh Project Templatesします。If you don't see template options, try refreshing templates by running the following command in the Command Palette: >F#: Refresh Project Templates.

選択"F#:新しいプロジェクト を押してEnterします。Select "F#: New Project" by hitting Enter. プロジェクト テンプレートを選択するためには、次の手順に移動します。This takes you to the next step, which is for selecting a project template.

選択、classlibテンプレートとヒットEnterします。Pick the classlib template and hit Enter.

次でプロジェクトを作成するディレクトリを選択します。Next, pick a directory to create the project in. 空のまま、現在のディレクトリを使用します。If you leave it blank, it uses the current directory.

最後に、最後の手順で、プロジェクトの名前を付けます。Finally, name your project in the final step. F#使用してパスカル ケースプロジェクト名にします。F# uses Pascal case for project names. この記事ではClassLibraryDemo名として。This article uses ClassLibraryDemo as the name. プロジェクトの名前を入力したら後のヒットEnterします。Once you've entered the name you want for your project, hit Enter.

前の手順を実行する場合に次のように表示される、左側にある Visual Studio コード ワークスペースを取得する必要があります。If you followed the previous step, you should get the Visual Studio Code Workspace on the left-hand side to appear with the following:

  1. F#プロジェクト自体の下に、ClassLibraryDemoフォルダー。The F# project itself, underneath the ClassLibraryDemo folder.
  2. 使用してパッケージを追加するための適切なディレクトリ構造 Paketします。The correct directory structure for adding packages via Paket.
  3. クロス プラットフォーム ビルド スクリプトを FAKEします。A cross-platform build script with FAKE.
  4. paket.exe実行可能ファイルをパッケージのフェッチし、の依存関係を解決することができます。The paket.exe executable that can fetch packages and resolve dependencies for you.
  5. A.gitignoreファイルを Git ベースのソース管理にこのプロジェクトを追加する場合。A .gitignore file if you wish to add this project to Git-based source control.

コードの作成Writing some code

開く、 ClassLibraryDemoフォルダー。Open the ClassLibraryDemo folder. 次のファイルが表示されます。You should see the following files:

  1. ClassLibraryDemo.fsで定義されているクラスを使用して F# 実装ファイルです。ClassLibraryDemo.fs, an F# implementation file with a class defined.
  2. ClassLibraryDemo.fsproj、F# プロジェクト ファイルをこのプロジェクトをビルドするために使用します。ClassLibraryDemo.fsproj, an F# project file used to build this project.
  3. Script.fsx、ソース ファイルを読み込む F# スクリプト ファイル。Script.fsx, an F# script file that loads the source file.
  4. paket.references、パケット ファイルをプロジェクトの依存関係を指定します。paket.references, a Paket file that specifies the project dependencies.

開いているScript.fsxの末尾に次のコードを追加します。Open Script.fsx, and add the following code at the end of it:

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します。This function converts a word to a form of Pig Latin. 次の手順では、F# Interactive (FSI) を使用して評価です。The next step is to evaluate it using F# Interactive (FSI).

(11 行である必要があります) 関数全体を強調表示します。Highlight the entire function (it should be 11 lines long). 強調表示され後の保持、 Altキーとヒット 」と入力します。Once it is highlighted, hold the Alt key and hit Enter. 以下に、ポップアップ ウィンドウがわかり、このようなものが表示する必要があります。You'll notice a window pop up below, and it should show something like this:

Ionide の概要で F# Interactive の出力の例

これは、次の 3 つを行いました。This did three things:

  1. FSI プロセスを開始します。It started the FSI process.
  2. 強調表示したコードは、FSI プロセス上で送信します。It sent the code you highlighted over the FSI process.
  3. FSI プロセス経由で送信するコードを評価します。The FSI process evaluated the code you sent over.

経由で送信するため、関数FSI でその関数を呼び出すようになりましたことができます。Because what you sent over was a function, you can now call that function with FSI! 対話型のウィンドウで、次のように入力します。In the interactive window, type the following:

toPigLatin "banana";;

次の結果が表示されます。You should see the following result:

val it : string = "ananabay"

ここで、最初の文字としての母音を試してみましょう。Now, let's try with a vowel as the first letter. 次のように入力します。Enter the following:

toPigLatin "apple";;

次の結果が表示されます。You should see the following result:

val it : string = "appleyay"

関数は、想定どおりに動作するが表示されます。The function appears to be working as expected. これで、先ほど Visual Studio Code で初めての F# 関数を記述し、FSI を使用して評価すること。Congratulations, you just wrote your first F# function in Visual Studio Code and evaluated it with FSI!

注意

FSI の明細行がで終了しましたように気付き、;;します。As you may have noticed, the lines in FSI are terminated with ;;. これは、FSI では、複数の行を入力できるためです。This is because FSI allows you to enter multiple lines. ;;により FSI 確認コードが完了すると、最後にします。The ;; at the end lets FSI know when the code is finished.

コードの説明Explaining the code

コードが実際に何のことを確認していない場合は、次に、順を追って示します。If you're not sure about what the code is actually doing, here's a step-by-step.

ご覧のとおり、toPigLatin関数は、単語の入力として受け取り、その単語の Pig Latin 表現に変換します。As you can see, toPigLatin is a function that takes a word as its input and converts it to a Pig-Latin representation of that word. このルールは次のとおりです。The rules for this are as follows:

単語の最初の文字が母音で始まる場合は、単語の末尾に"yay"を追加します。If the first character in a word starts with a vowel, add "yay" to the end of the word. 、母音で開始しない場合は、その最初の文字を単語の末尾に移動し、を「なります」に追加します。If it doesn't start with a vowel, move that first character to the end of the word and add "ay" to it.

FSI では、次お気付きかもしれません。You may have noticed the following in FSI:

val toPigLatin : word:string -> string

示すこのtoPigLatinで受け取る関数には、string入力として (と呼ばれるword)、戻って別stringThis states that toPigLatin is a function that takes in a string as input (called word), and returns another string. 呼ばれます、関数の型シグネチャ、基本的な F# コードを理解する鍵は、F# です。This is known as the type signature of the function, a fundamental piece of F# that's key to understanding F# code. また、この場合、Visual Studio Code で関数ポインターを合わせます。You'll also notice this if you hover over the function in Visual Studio Code.

関数の本文で、2 つの異なる部分がわかります。In the body of the function, you'll notice two distinct parts:

  1. 呼ばれる、内部関数isVowel、特定の文字を決定する (c) を使用して指定されたパターンのいずれかと一致する場合にチェックして、母音は、パターン マッチング:An inner function, called isVowel, that determines if a given character (c) is a vowel by checking if it matches one of the provided patterns via Pattern Matching:

    let isVowel (c: char) =
        match c with
        | 'a' | 'e' | 'i' |'o' |'u'
        | 'A' | 'E' | 'I' | 'O' | 'U' -> true
        |_ -> false
    
  2. if..then..else かどうかは、最初の文字は、母音と場合、最初の文字ベースの構造は、入力文字列からの戻り値をチェックする式、母音であるか。An if..then..else expression that checks if the first character is a vowel, and constructs a return value out of the input characters based on if the first character was a vowel or not:

    if isVowel word.[0] then
        word + "yay"
    else
        word.[1..] + string(word.[0]) + "ay"
    

フローのtoPigLatinなります。The flow of toPigLatin is thus:

入力の単語の最初の文字の母音であることを確認します。Check if the first character of the input word is a vowel. 場合は、"yay"という単語の末尾にアタッチします。If it is, attach "yay" to the end of the word. それ以外の場合、その最初の文字を単語の末尾に移動し、それを「なります」に追加します。Otherwise, move that first character to the end of the word and add "ay" to it.

1 つの最後にこれに関する注意: その他の多くの言語とは異なり、関数から返される明示的な命令はありません。There's one final thing to notice about this: there's no explicit instruction to return from the function, unlike many other languages out there. これは、ためF#が式に基づいて、関数の本体の最後の式は、戻り値。This is because F# is Expression-based, and the last expression in the body of a function is the return value. if..then..else自体、式の本体では、thenブロックまたはの本文、elseブロックが入力値によって返されます。Because if..then..else is itself an expression, the body of the then block or the body of the else block will be returned depending on the input value.

スクリプト コードを実装ファイルに移動Moving your script code into the implementation file

この記事では、前のセクションには、F# コードの記述の一般的な最初の手順が示されています。 最初の関数の記述と、FSI 使用して対話的に実行します。The previous sections in this article demonstrated a common first step in writing F# code: writing an initial function and executing it interactively with FSI. これは、REPL 駆動型開発と呼ばれます、 REPL 「読み取り評価印刷ループ」を意味します。This is known as REPL-driven development, where REPL stands for "Read-Evaluate-Print Loop". 機能を試して動作ものがある場合する優れた方法です。It's a great way to experiment with functionality until you have something working.

REPL 駆動型開発の次の手順では、作業コード F# 実装ファイルに移動します。The next step in REPL-driven development is to move working code into an F# implementation file. これは、実行可能なアセンブリの F# コンパイラによってコンパイルできます。It can then be compiled by the F# compiler into an assembly that can be executed.

まず、開きますClassLibraryDemo.fsします。To begin, open ClassLibraryDemo.fs. いくつかのコードが既にに存在することがわかります。You'll notice that some code is already in there. 前方に移動し、クラス定義を削除しますがのままにすることを確認、 namespace 上部にある宣言します。Go ahead and delete the class definition, but make sure to leave the namespace declaration at the top.

次に、作成、新しい module と呼ばれるPigLatinをコピーし、toPigLatinように関数。Next, create a new module called PigLatin and copy the toPigLatin function into it as such:

namespace ClassLibraryDemo

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"

次に、開く、Script.fsxファイルを再び、および全体を削除toPigLatinファイルに次の 2 つの行を保持することを確認しますが、機能します。Next, open the Script.fsx file again, and delete the entire toPigLatin function, but make sure to keep the following two lines in the file:

#load "ClassLibraryDemo.fs"
open ClassLibraryDemo

テキストの両方の行を選択して、FSI でこれらの行を実行するには、Alt + Enter キーを押します。Select both lines of text and press Alt+Enter to execute these lines in FSI. FSI のプロセスに Pig Latin ライブラリのコンテンツを読み込むこれらとopenClassLibraryDemo名前空間の機能にアクセスできるようにします。These will load the contents of the Pig Latin library into the FSI process and open the ClassLibraryDemo namespace so that you have access to the functionality.

次に、FSI ウィンドウで、使用して、関数を呼び出して、PigLatin前に定義したモジュール。Next, in the FSI window, call the function with the PigLatin module that you defined earlier:

> PigLatin.toPigLatin "banana";;
val it : string = "ananabay"
> PigLatin.toPigLatin "apple";;
val it : string = "appleyay"

正常に完了Success! 取得する前に、同じ結果が、F# 実装ファイルから読み込まれるようになりました。You get the same results as before, but now loaded from an F# implementation file. ここでの主な違いは、F# ソース ファイルが FSI 内だけでなく、どこにでも実行できるアセンブリにコンパイルされます。The major difference here is that F# source files are compiled into assemblies that can be executed anywhere, not just in FSI.

まとめSummary

この記事では、次の学習できました。In this article, you've learned:

  1. Ionide の概要を使用して Visual Studio Code を設定する方法。How to set up Visual Studio Code with Ionide.
  2. Ionide の概要で初めての F# プロジェクトを作成する方法。How to create your first F# project with Ionide.
  3. F# スクリプトを使用して、ionide の概要で初めての F# 関数を記述し、FSI で実行する方法。How to use F# Scripting to write your first F# function in Ionide and then execute it in FSI.
  4. スクリプトを移行する方法を使用して、F# ソース コード、FSI からそのコードを呼び出します。How to migrate your script code to F# source and then call that code from FSI.

コードより F# Visual Studio Code および ionide の概要を使用して書き込むが組み込まれました。You're now equipped to write much more F# code using Visual Studio Code and Ionide.

トラブルシューティングTroubleshooting

次に遭遇する可能性のある特定の問題のトラブルシューティングを行うことがいくつかの方法を示します。Here are a few ways you can troubleshoot certain problems that you might run into:

  1. Ionide の概要の編集機能をコードを取得するには、F# ファイルはディスク、および Visual Studio Code ワークスペースで開いているフォルダー内に保存する必要があります。To get the code editing features of Ionide, your F# files need to be saved to disk and inside of a folder that is open in the Visual Studio Code workspace.
  2. 場合は、システムを変更または開いている Visual Studio のコードと共に ionide の概要の前提条件をインストールしたら、Visual Studio Code を再起動します。If you've made changes to your system or installed Ionide prerequisites with Visual Studio Code open, restart Visual Studio Code.
  3. 使用できることを確認、F#コンパイラとF#完全修飾パスを使用せずにコマンドラインから対話型です。Check that you can use the F# compiler and F# interactive from the command line without a fully-qualified path. 」と入力して行うことができますfsc、F# コンパイラのコマンドラインで、fsiまたはfsharpiの Visual F# ツールの Windows、Mac または Linux での Mono でそれぞれします。You can do so by typing fsc in a command line for the F# compiler, and fsi or fsharpi for the Visual F# tools on Windows and Mono on Mac/Linux, respectively.
  4. プロジェクトのディレクトリで無効な文字があれば、ionide の概要が動作しない可能性があります。If you have invalid characters in your project directories, Ionide might not work. これに該当する場合、プロジェクト ディレクトリの名前を変更します。Rename your project directories if this is the case.
  5. Ionide コマンドのいずれも作業している場合、 Visual Studio Code の keybindingsを誤って上書きしているかどうかを参照してください。If none of the Ionide commands are working, check your Visual Studio Code keybindings to see if you're overriding them by accident.
  6. Ionide の概要は、コンピューターに分割すると、上記のいずれが問題を修正、削除してみてください、ionide-fsharpコンピューターにディレクトリ プラグイン スイートを再インストールします。If Ionide is broken on your machine and none of the above has fixed your problem, try removing the ionide-fsharp directory on your machine and reinstall the plugin suite.

Ionide の概要とは、構築および F# コミュニティのメンバーによって管理されるオープン ソース プロジェクトです。Ionide is an open source project built and maintained by members of the F# community. 問題を報告し、気軽に投稿にしてください、 Ionide VSCode:FSharp GitHub リポジトリします。Please report issues and feel free to contribute at the Ionide-VSCode: FSharp GitHub repository.

レポートに問題がある場合に従ってください問題を報告するときに使用するログを取得するための指示します。If you have an issue to report, please follow the instructions for getting logs to use when reporting an issue.

Ionide の概要開発者および F# コミュニティからさらにヘルプを求めることも、 Ionide Gitter チャネルします。You can also ask for further help from the Ionide developers and F# community in the Ionide Gitter channel.

次の手順Next steps

F# と言語の機能の詳細については、F# のツアー を参照してください。To learn more about F# and the features of the language, check out Tour of F#.