-F#はマイクロソフトリサーチによって開発されたプログラミング言語です。関数型言語のOCamlをベースに開発されています。Framework上で動作するのが特徴で、.NET由来の豊富なライブラリが利用できます。そのため、型推論やパターンマッチ、遅延評価など関数型言語由来の先進的な機能を持ちながら、.NETの実用的なライブラリを利用できるのが特徴です。2010のリリースと共に公開されました。実用性が高く人気の関数型言語のOCamlをベースにして開発されました。そのため、OCamlの影響を強く受けています。F#のFはFunctional(関数型)を意味しています。Framework言語と相互運用性があります。C#で作ったライブラリを呼び出すこともできますし、逆にF#で作ったライブラリを、C#から使うこともできます。Frameworkは、macOSやLinuxでも動くため、幅広い環境でF#で作ったプログラムを動かすことができます。簡潔にプログラムを書けることや、バグの少ないプログラムを書くための機能が充実していること、コンパイル言語であり実行速度が速いことが特徴です。F#の開発環境を整える最初にF#の開発環境を整えましょう。2019をインストールします。2019には、用途に合わせていろいろなエディションが用意されています。個人開発者、あるいは、学習目的であれば無料で利用できる、Communityエディションが便利です。こちらよりインストーラーをダウンロードして、インストールしましょう。インストーラーを実行すると、以下のような画面が表示されます。そこで、今回は「.NETデスクトップ環境」を選んでインストールしてみましょう。Basic、開発ツールの一式必要なツールがインストールされます。何をインストールするのか質問があります。.NETデスクトップ開発環境を選びます右側のインストールの詳細のオプションで「F#デスクトップ言語のサポート」にチェックを入れますmacOSやLinuxでもMonoをインストールすることで使えるようになります。詳しくは、こちらのmacOSとLinuxのページが参考になります。Communityエディションをインストールしたものとして話を進めます。2019を起動します。「新しいプロジェクト」を選択します。「(F#)コンソールアプリケーション」を選んで[次へ]ボタンをクリックします。適当な名前をつけて[作成]ボタンをクリックします。すると、F#の開発画面が表示されます。新しいプロジェクトの作成からF#のコンソールアプリケーションを選択。World!と表示するだけのプログラムを書いてみましょう。printfnと書くと文字列と改行を出力します。以下のプログラムを記述した上で[F5]キーを実行してみましょう。World!"の文字が表示されたコンソール画面が表示されますが、すぐに終了してしまいます。これでは、しっかり文字が表示されているか確認できません。キーを入力するまで終了を待機するようにしてみましょう。World!"と表示されているのが確認できます。以下のように表示されます。(ライブラリ名)』のように書くことでライブラリが利用できるようになります。三行目にある『Console.ReadKey()』の部分は、文字が入力されるまで待機するメソッドです。これは、C#でも使えるもので、.NETのライブラリが使えることが分かるでしょう。簡単な計算をしてみよう次に簡単な計算をコンソール画面に出力するプログラムを作ってみましょう。F#は静的型付けの言語なので、本来、変数などを使う際には、整数(int)型や実数(float)型の指定を記述する必要があります。自動的に型を判定する『型推論』の機能を持っています。以下のプログラムは簡単な計算を行うものですが、型推論の機能を利用して、型の指定を省略しています。他の動的型を持つ、スクリプト言語のようにも見えるでしょう。これがF#の魅力の一つです。Studioで実行すると、以下のように表示されます。計算をしているところFizzBuzz問題を解くプログラムそれでは、本連載恒例のFizzBuzz問題を解くプログラムを紹介します。これは、以下のような問題を解くプログラムです。1から100までの数字を出力する際に、3の倍数の時「Fizz」、5の倍数の時「Buzz」、3と5の倍数の時「FizzBuzz」と表示するプログラムを作って下さい。実際のプログラムは、以下の通りです。ignoreプログラムを実行すると、以下のように表示されます。FizzBuzzのプログラムを実行したところこのプログラムでも、型推論を利用しているので、一カ所も型宣言を記述することなくプログラムを完成させることができました。bool』と表示され、暗黙的に型宣言がされていることが確認できます。型推論の機能を確認できるプログラムの各部分を個別に見ていきましょう。(*1)の部分では、FizzとBuzzの条件を関数として定義します。Fizzは3で割りきれる数、Buzzは5で割り切れる数です。(*2)の部分では、(*1)で定義したisFizzとisBuzzの関数を利用して、FizzBuzzの値を返す関数を定義します。構文を利用して、次々と条件を判定し、FizzBuzzの値を決定します。doを利用して、100回の繰り返し処理を記述します。F#ではPythonのようにインデントによりブロックを指定できるので、このように、すっきりとしたプログラムを記述できます。Frameworkの主要言語の一つ『F#』について紹介しました。ここで紹介した簡単なプログラムを見るだけでも、F#を使うと簡潔でスマートにプログラムを書けることが分かったのではないでしょうか。Studioの強力な支援機能、そして、.NETのライブラリが十分に補ってくれます。そのため、これからも、F#は、Web開発やモバイルアプリ開発など、様々な分野で使われていくことでしょう。くじらはんどにて、プログラミングの楽しさを伝える活動をしている。テキスト音楽「サクラ」など。※本記事は掲載時点の情報であり、最新のものとは異なる場合があります。Corporation。