Visual Studio for Mac でのF#使用を開始するGet started with F# in Visual Studio for Mac

F#また、ビジュアルF#ツールは Visual Studio for Mac IDE でもサポートされています。F# and the Visual F# tooling are supported in the Visual Studio for Mac IDE. Visual Studio for Mac がインストールされていることを確認します。Ensure that you have Visual Studio for Mac installed.

コンソールアプリケーションの作成Creating a console application

Visual Studio for Mac の最も基本的なプロジェクトの1つは、コンソールアプリケーションです。One of the most basic projects in Visual Studio for Mac is the Console Application. これを行う方法を次に示します。Here's how to do it. Visual Studio for Mac が開いたら、次のようになります。Once Visual Studio for Mac is open:

  1. [ファイル] メニューの [新しいソリューション] をポイントします。On the File menu, point to New Solution.

  2. [新しいプロジェクト] ダイアログには、コンソールアプリケーションに2つの異なるテンプレートがあります。In the New Project dialog, there are 2 different templates for Console Application. .NET Framework をターゲットとする > .NET の下に1つあります。There is one under Other -> .NET which targets the .NET Framework. その他のテンプレートは .net core > アプリの下にあり、.NET Core を対象としています。The other template is under .NET Core -> App which targets .NET Core. どちらのテンプレートも、この記事の目的で機能します。Either template should work for the purpose of this article.

  3. [コンソールアプリ] でC# 、 F#必要に応じてをに変更します。Under console app, change C# to F# if needed. [次へ] ボタンをクリックして先に進みます。Choose the Next button to move forward!

  4. プロジェクトに名前を付け、アプリに必要なオプションを選択します。Give your project a name, and choose the options you want for the app. プレビューウィンドウには、選択したオプションに基づいて作成されるディレクトリ構造が表示されます。Notice, the preview pane to the side of the screen that will show the directory structure that will be created based on the options selected.

  5. [作成] をクリックします。Click Create. ソリューションエクスプローラーにF#プロジェクトが表示されます。You should now see an F# project in the Solution Explorer.

コードの記述Writing your code

まず、コードをいくつか記述してみましょう。Let's get started by writing some code first. Program.fs ファイルが開いていることを確認し、その内容を次の内容に置き換えます。Make sure that the Program.fs file is open, and then replace its contents with the following:

module HelloSquare

let square x = x * x

let main argv =
    printfn "%d squared is: %d!" 12 (square 12)
    0 // Return an integer exit code

前のコードサンプルでは、x という名前の入力を受け取り、それを単独で乗算する関数 square が定義されています。In the previous code sample, a function square has been defined which takes an input named x and multiplies it by itself. でF#は型の推定が使用されるため、x の型を指定する必要はありません。Because F# uses Type Inference, the type of x doesn't need to be specified. コンパイラF#は、乗算が有効な型を認識し、square の呼び出し方法に基づいて x に型を割り当てます。The F# compiler understands the types where multiplication is valid, and will assign a type to x based on how square is called. squareにマウスポインターを合わせると、次のように表示されます。If you hover over square, you should see the following:

val square: x:int -> int

これは、関数の型シグネチャとして知られています。This is what is known as the function's type signature. これは、次のように読み取ることができます。 "Square は、x という整数を受け取り、整数を生成する関数です。"It can be read like this: "Square is a function which takes an integer named x and produces an integer". コンパイラによって現在の int 型が square されていることに注意してください。これは、乗算がすべての型のジェネリックではなく、閉じられた型のセット全体でジェネリックであるためです。Note that the compiler gave square the int type for now - this is because multiplication is not generic across all types, but rather is generic across a closed set of types. コンパイラF#はこの時点で int を選択しましたが、floatなどの別の入力型を使用して square を呼び出すと、型シグネチャが調整されます。The F# compiler picked int at this point, but it will adjust the type signature if you call square with a different input type, such as a float.

別の関数 mainが定義されています。これは、プログラムの実行F#を開始する必要があることをコンパイラに通知するために、EntryPoint 属性で修飾されています。Another function, main, is defined, which is decorated with the EntryPoint attribute to tell the F# compiler that program execution should start there. これは、コマンドライン引数をこの関数に渡すことができる他のC スタイルのプログラミング言語と同じ規則に従い、整数のコードが返されます (通常は 0)。It follows the same convention as other C-style programming languages, where command-line arguments can be passed to this function, and an integer code is returned (typically 0).

この関数は、12の引数を使用して square 関数を呼び出します。It is in this function that we call the square function with an argument of 12. 次F#に、コンパイラは square の型を int -> int に割り当てます。これは、int を受け取り、intを生成する関数です。The F# compiler then assigns the type of square to be int -> int (that is, a function which takes an int and produces an int). printfn の呼び出しは、C スタイルのプログラミング言語に似た書式指定文字列を使用する書式設定された印刷関数で、書式指定文字列で指定されたパラメーターに対応するパラメーターで、結果と改行を出力します。The call to printfn is a formatted printing function which uses a format string, similar to C-style programming languages, parameters which correspond to those specified in the format string, and then prints the result and a new line.

コードの実行Running your code

上部のメニューから [実行] をクリックし、 [デバッグなしで開始] をクリックして、コードを実行し、結果を確認できます。You can run the code and see results by clicking on Run from the top level menu and then Start Without Debugging. これにより、デバッグなしでプログラムが実行され、結果を確認できるようになります。This will run the program without debugging and allows you to see the results.

コンソールウィンドウに次の出力が表示され、Visual Studio for Mac ポップアップされます。You should now see the following printed to the console window that Visual Studio for Mac popped up:

12 squared is 144!

おめでとうございます!Congratulations! Visual Studio for Mac で最初F#のプロジェクトを作成し、その関数F#を呼び出した結果を出力する関数を記述し、プロジェクトを実行して結果を確認しました。You've created your first F# project in Visual Studio for Mac, written an F# function printed the results of calling that function, and run the project to see some results.

対話型F#の使用Using F# Interactive

Visual Studio for Mac のビジュアルF#ツールの最適な機能の1つは、 F#対話型ウィンドウです。One of the best features of the Visual F# tooling in Visual Studio for Mac is the F# Interactive Window. このメソッドを使用すると、コードを呼び出して結果を対話形式で確認できるプロセスにコードを送信できます。It allows you to send code over to a process where you can call that code and see the result interactively.

使用を開始するには、コードで定義されている square 関数を強調表示します。To begin using it, highlight the square function defined in your code. 次に、トップレベルメニューの [編集] をクリックします。Next, click on Edit from the top level menu. に、[選択F#範囲を対話型に送信] を選択します。Next select Send selection to F# Interactive. これにより、 F#対話型ウィンドウのコードが実行されます。This executes the code in the F# Interactive Window. または、選択範囲を右クリックし、 [選択項目をF#対話形式で送信] を選択します。Alternatively, you can right click on the selection and choose Send selection to F# Interactive. F#対話型ウィンドウが表示され、次のようなウィンドウが表示されます。You should see the F# Interactive Window appear with the following in it:


val square : x:int -> int


これは、関数の上にマウスポインターを置いたときに表示される、square 関数の関数シグネチャと同じです。This shows the same function signature for the square function, which you saw earlier when you hovered over the function. square がF#対話型プロセスで定義されるようになったため、異なる値を使用して呼び出すことができます。Because square is now defined in the F# Interactive process, you can call it with different values:

> square 12;;
val it : int = 144
>square 13;;
val it : int = 169

これにより、関数が実行され、結果が it新しい名前にバインドされ、itの型と値が表示されます。This executes the function, binds the result to a new name it, and displays the type and value of it. 各行は ;;で終了する必要があることに注意してください。Note that you must terminate each line with ;;. これは、 F#関数呼び出しが終了したことを対話形式で認識する方法です。This is how F# Interactive knows when your function call is finished. 対話型でF#新しい関数を定義することもできます。You can also define new functions in F# Interactive:

> let isOdd x = x % 2 <> 0;;

val isOdd : x:int -> bool

> isOdd 12;;
val it : bool = false

上の例では、isOddという新しい関数が定義されています。この関数は、int を受け取り、それが奇数かどうかを確認します。The above defines a new function, isOdd, which takes an int and checks to see if it's odd! この関数を呼び出すと、異なる入力で何が返されるかを確認できます。You can call this function to see what it returns with different inputs. 関数呼び出しの中で関数を呼び出すことができます。You can call functions within function calls:

> isOdd (square 15);;
val it : bool = true

パイプ転送演算子を使用して、値を次の2つの関数にパイプライン処理することもできます。You can also use the pipe-forward operator to pipeline the value into the two functions:

> 15 |> square |> isOdd;;
val it : bool = true

パイプ転送演算子などの詳細については、以降のチュートリアルで説明します。The pipe-forward operator, and more, are covered in later tutorials.

これは、対話型で実行できることを確認するF#ことだけを目的としています。This is only a glimpse into what you can do with F# Interactive. 詳細については、を使用しF#た対話型プログラミングに関するページをご覧ください。To learn more, check out Interactive Programming with F#.

次のステップ:Next steps

このF#言語の主要機能の一部については、「」 F#のツアーをご覧ください。If you haven't already, check out the Tour of F#, which covers some of the core features of the F# language. ここでは、のF#一部の機能の概要について説明し、Visual Studio for Mac にコピーして実行できるコードサンプルをいくつか紹介します。It will give you an overview of some of the capabilities of F#, and provide ample code samples that you can copy into Visual Studio for Mac and run. この F#ガイドで紹介している、使用できる優れた外部リソースもあります。There are also some great external resources you can use, showcased in the F# Guide.

参照See also