FS ファイル形式とは?
.fs は、Microsoft Research の Don Syme によって開発された、関数型第一で強力な型付けを持つプログラミング言語 F# のソースファイル拡張子です。F# は .NET ランタイムをターゲットとしており、F# コンパイラ fsc を介して .NET 中間言語にコンパイルされます。
.fs ファイルは、module または namespace 宣言、open インポート文、型定義、let バインディング、および式の順序付けられたシーケンスを含むプレーンな UTF-8 テキストです。重要な点として、F# では順序が重要です。コンパイラは宣言を上から下に処理し、プロジェクト内のファイルは .fsproj プロジェクトファイル内で明示的なコンパイル順序でリストされる必要があります。これは、プロジェクト内の宣言順序が一般的に無関係な C# や Java とは異なります。
F# は、.NET から継承されたオブジェクト指向機能に加えて、関数型プログラミングのイディオム(デフォルトで不変のデータ、パターンマッチング、判別共用体、コンピュテーション式)をサポートしています。この言語は、バージョン 1.0(2005年、Microsoft Research)から F# 9.0(2024年)へと進化してきました。
関連する拡張子には、.fsi(C 言語のヘッダーファイルに相当する F# インターフェース/シグネチャファイル)や .fsx(dotnet fsi を介して明示的なコンパイルなしで実行される F# スクリプトファイル)があります。Fable コンパイラを使用すると、.fs ソースを JavaScript にトランスパイルして、ブラウザや Node.js をターゲットにすることも可能です。
.fs ファイルは、Visual Studio 2022、JetBrains Rider、および Ionide 拡張機能を備えた Visual Studio Code でネイティブにサポートされています。
セキュリティと安全性
リスク: LOWプレーンテキストのソースコードです。閲覧時に実行のリスクはありません。リスクは、信頼できない F# コードをコンパイルして実行する場合にのみ発生します。
形式の詳細
概要- BRKSYS FS (ファイルシステムイメージ) - 一部のエミュレータや OS ツールチェーンが、生のファイルシステムイメージに .fs を使用することがありますが、F# ソースとは無関係です。
- Haskell モジュール (稀) - 古い Haskell のコードベースで稀に .fs サフィックスが見られることがありますが、標準は .hs です。非常に稀なケースです。
FS ファイルを開くプログラム
.fsproj(または .sln)を開きます。.fs ファイルがソリューションエクスプローラーに表示され、ダブルクリックするとフル機能の IntelliSense で編集できます。 .fsproj を含むフォルダーを開くと、IntelliSense と F# のサポートが有効になります。 .fsproj を含むフォルダーを開くと、IntelliSense と F# のサポートが有効になります。 .fsproj を含むフォルダーを開くと、IntelliSense と F# のサポートが有効になります。 技術的詳細
詳細仕様| 言語 | F# - Microsoft Research の Don Syme によって開発された、関数型第一で強力な型付けを持つ .NET 言語 |
| エンコーディング | UTF-8 テキスト。BOM は任意。Visual Studio のデフォルトは BOM なし UTF-8 |
| コンパイラ | `fsc`(F# コンパイラ)。`.fs` ファイルを .NET IL にコンパイル。MSBuild プロジェクトでは `dotnet build` を介して呼び出される |
| コンパイル順序 | ファイルは `.fsproj` 内で上から順にリストされる必要がある。順序は意味的に重要であり、前方参照は許可されない |
| 言語バージョン | F# 言語バージョンは `.fsproj` の `LangVersion` プロパティで設定。現在は F# 9.0(2024年) |
| パラダイム | 関数型第一(デフォルトで不変、パターンマッチング、判別共用体、コンピュテーション式)であり、完全な OOP サポートを備える |
| 型システム | Hindley-Milner 型推論。ほとんどのコンテキストで明示的な型注釈は任意 |
| モジュールシステム | トップレベルの `module` または `namespace` 宣言。ファイル間の循環参照は許可されない |
| 関連する拡張子 | `.fsi`(インターフェース/シグネチャファイル)、`.fsx`(スクリプト)、`.fsproj`(MSBuild プロジェクトファイル) |
| 実行ターゲット | Windows、Linux、macOS 上の .NET 6+。また、Fable トランスパイラを介した JavaScript |
| スクリプトモード | `.fsx` ファイルは明示的なコンパイルなしで `dotnet fsi` を介して実行される。`.fs` ファイルにはプロジェクトまたは直接の `fsc` 呼び出しが必要 |
| IDE サポート | Visual Studio 2022、Ionide 拡張機能を備えた Visual Studio Code、JetBrains Rider |
| リリース日 | 2005 (F# 1.0, Microsoft Research); Visual Studio integration since 2010 (VS 2010) |
| 最新バージョン | F# 9.0 (2024) |
| オープンスタンダード | はい · ロイヤリティフリー |
| 仕様書 | fsharp.org |
FS の変換
コミュニティ Q&A
ユーザーからの質問まだ質問はありません。FS ファイルについて最初の質問をしてみましょう。
よくある質問
.fs ファイルを開くにはどうすればよいですか?
.fs は Windows 専用ですか?
.fs ファイルは Windows、macOS、および Linux でコンパイルして実行できます。.fs、.fsi、.fsx の違いは何ですか?
.fs はコンパイルされるソースファイル、.fsi はインターフェース/シグネチャファイル(オプション)、.fsx は完全なプロジェクトを必要とせずに dotnet fsi で直接実行されるスクリプトです。なぜ .fsproj でファイルの順序を気にする必要があるのですか?
.fsproj 内の順序がそのままコンパイル順序となります。