連載の最後では、「完全性」というテーマで、F#のその他の側面を見ていきます。
学術界発のプログラミング言語は、実用性よりも美しさや純粋性を重視しがちです。一方、C#やJavaのようなビジネス向けの主流言語は、まさにその実用性で評価されています。これらの言語は様々な場面で使え、ほぼすべてのニーズに応える豊富なツールやライブラリを持っているからです。つまり、企業で役立つ言語は、単に設計が優れているだけでなく、「完全」である必要があるのです。
F#はユニークな存在で、この両方の世界をうまくつないでいます。これまでの例では、エレガントな関数型言語としてのF#に注目してきましたが、F#はオブジェクト指向のパラダイムもサポートしており、他の.NET言語やツールとも簡単に連携できます。そのため、F#は孤立した存在ではなく、.NETエコシステム全体の一員として恩恵を受けているのです。
F#を「完全」にしている他の要素としては、公式の.NET言語であること(それに伴うサポートとドキュメントがあること)、そしてVisual Studioでの使用を前提に作られていること(IntelliSenseサポート付きの優れたエディタ、デバッガなどが使える)が挙げられます。これらの利点は明らかなので、ここでは詳しく触れません。
そこで、この最後のセクションでは、次の2つの特定の領域に焦点を当てます:
- .NETライブラリとのシームレスな相互運用性。F#の関数型アプローチと、基本ライブラリの命令型アプローチの間にはギャップがあるかもしれません。この統合をより簡単にするF#の機能について見ていきます。
- クラスやその他のC#スタイルのコードの完全サポート。F#は関数型とオブジェクト指向のハイブリッド言語として設計されているので、C#とほぼ同じことができます。これらの機能の文法について簡単に紹介します。