2016-09-26 3 views
2

これはおそらく簡単な質問ですが、私はそれを理解することができないので質問として投稿します。 stackoverflowのどこかに重複があるかもしれませんが、何も見つかりませんでした。私はビジュアルスタジオコードでubuntuのコードを書いています。ubuntuでこのコードをコンパイルするには?

これは私のtest.fsファイルの内容です:

open System 
(*print*) 

let main() = 
    Console.WriteLine("hello") 

main() 

私は、端末上でそれをコンパイルしたかったです。私はそれから対話的なF#セッションを走らせることができるので、コンパイラがそこにあることを知っています。私はラインのそれぞれについて、このエラーを取得する(4)それは私がF#でのモジュールであると考えている名前空間/パッケージの問題であったと信じて私をリード

error: expected class or object definition 

。しかし、私は次のように見つけました: "コードファイルは最上位モジュール宣言または名前空間宣言で始まらず、ローカルモジュールを含むファイルの内容全体が暗黙的に作成された最上位モジュールの一部になります(https://docs.microsoft.com/en-us/dotnet/articles/fsharp/language-reference/modules)。そのファイルと同じ名前を持ち、拡張子なしで、最初の文字を大文字に変換します。

したがって、モジュールとして宣言する必要はありません。しかし、私もそれを試してみましたが、何の成功もありませんでした。

誰かが原因でエラーが発生する可能性がありますか?

これを正しくコンパイルする方法を教えてください。

+0

ここでヘルプが表示されない場合は、あなたもaskubuntuを試すことができます。 – GhostCat

+0

興味のあるもの:Windows#10上のUbuntu bashで仮想マシンを使用せずにF#(モノラルを使用)できることをご存知でしたか?参照:[WindowsのUbuntuのBash](https://msdn.microsoft.com/en-us/commandline/wsl/about) –

答えて

4

fsharpの前にfscと呼ばれていたscalaコンパイラが呼び出されているようです。たとえば、ここにerror: expected class or object definitionなど、F#コンパイラからのエラーメッセージではないエラーメッセージに関する質問があります。

この問題を回避するために、Linuxでは多くのディストリビューションでF#コンパイラがfsharpcと呼ばれています。

関連する問題